advanced
pontuacao-ciclista
solucao-problemas
debugging

Solucao de Problemas

Problemas comuns da Pontuacao e como diagnostica-los - pontuacoes faltantes, niveis travados, intervencoes fantasma, recompensa nao emitida.

Levy Fleets TeamMay 18, 20268 min read

Solucao de Problemas

A Pontuacao e soft-fail. Erros sao logados mas nunca bloqueiam viagem. Isso torna muitos problemas silenciosos.

Uma viagem nao tem pontuacao

Sintoma: Viagem concluida existe mas sem linha em ride_safety_signals.

Verifique, em ordem:

  1. Subconta ativada? subaccount_rider_score_settings.enabled = true.
  2. Viagem terminou em estado pontuavel? Canceladas ou com erro nao sao pontuadas.
  3. Muito curta? Abaixo de min_ride_seconds (60) ou min_ride_meters (200) excluida.
  4. Log de servidor? Verificar Sentry.
  5. Recomputacao manual. POST /api/internal/rider-score/recompute com { rideId }.

Rolante nao bate com as pontuacoes de viagem

Sintoma: Tres pontuacoes altas seguidas, mas rolante mal moveu.

Verifique:

  1. Quantas viagens pontuadas? Com tres, ainda Iniciante.
  2. Meia-vida? 90 dias mal move EWMA.
  3. Janela? Viagens ruins historicas ainda pesam.
  4. Viagens curtas excluidas?

Nivel travado

Sintoma: Pontuacao cruzou fronteira ha uma hora mas badge nao mudou.

Verifique:

  1. rider_scores.computed_at - rolante recomputou?
  2. Entrega de push - nivel atualiza apos push.
  3. pickTierForScore - faixas sobrepostas?
  4. Recomputacao manual - POST /api/internal/rider-score/recompute com { customerId }.

Recompensa nao foi emitida

Sintoma: Ciclista Ouro completou viagem qualificada, pontuacao boa, mas sem credito.

Verifique rider_score_rewards para essa viagem. Campo status:

StatusSignificado
issuedEmitido, vinculado a ride_refunds e wallet_transactions
pendingPipeline falhou - intervencao manual. Nunca criar credito de carteira a mao.
skipped_capTeto mensal por ciclista atingido
skipped_budgetOrcamento da frota exaurido
skipped_tier_inactiveNivel sem per_ride_credit_cents

Nunca burlar o pipeline

Em pending, corrija a causa raiz e re-execute a engine. NAO crie credito a mao. Escritas diretas em wallet_balance corrompem net_deposited e pagamentos de parceiros.

Intervencao nao disparou

Sintoma: Pontuacao abaixo de 40 mas sem limite de acelerador.

Verifique:

  1. Regra da escada. Passo 4 ativado?
  2. Linha rider_interventions. Intervencao passo-4 aberta?
  3. getActiveInterventionState - verificar Sentry.
  4. Suporte IoT. Veiculos sem comandos de acelerador pulam passo 4.
  5. Recurso ativo. Se ciclista arquivou recurso, intervencao pausada - comportamento correto.

Desconto de capacete nao aplicou

Sintoma: Capacete verificado mas taxa de desbloqueio nao reduzida.

Verifique:

  1. Linha rider_helmet_selfies. passed_at definido? ttl_expires_at no futuro?
  2. consumed_at - se uso unico, ja consumido.
  3. apply-uplift.ts - conectado ao fluxo de precos?
  4. Configuracao - helmet_discount_unlock_fee_cents > 0?
  5. Tabela errada. Documentos antigos referenciam helmet_verifications (CV). A tabela de Pontuacao e rider_helmet_selfies.

Teste de reacao dispara repetidamente

Sintoma: Ciclista passou mas app pede novamente no proximo desbloqueio.

Verifique:

  1. reaction_repeat_hours - padrao 6. Mais de 6h?
  2. reaction_window_* - desbloqueio na janela noturna?
  3. Linha reaction_tests - passed=true?
  4. Gatilho aleatorio - reaction_random_trigger_pct > 0?

Pontuacao nao muda apos editar pesos

Sintoma: Pesos atualizados ha uma hora, mas rolantes parecem identicos.

Esperado. Mudancas de peso:

  • Afetam pontuacoes futuras imediatamente.
  • Disparam recomputacao completa unica via cron noturno.
  • Nao mudam retroativamente pontuacoes armazenadas.

Para recomputacao imediata: POST /api/internal/rider-score/recompute com { subaccountId }.

Entrada de auditoria faltando

Sintoma: Levantei intervencao com motivo mas nao vejo entrada em Trilha de Auditoria.

Verifique:

  1. Filtro de intervalo de tempo - padrao ultimos 30 dias.
  2. Filtro de ator - acoes do sistema nao aparecem se filtrar por seu user_id.
  3. Filtro de tipo - "intervention_lift" e distinto de "intervention_close".

Cron nao roda

Sintoma: Recomputacao noturna parece nunca disparar.

Verifique:

  1. vercel.json tem entradas para /api/cron/rider-score-recompute, etc.
  2. Header de auth do cron - segredo compartilhado.
  3. Painel Vercel > Cron jobs para ultimo status.

Ainda travado?

Puxe customer_uuid e ride_uuid afetados, depois contate support@levyelectric.com.