Troubleshooting
A maioria dos problemas de LTI 1.3 cai em uma destas categorias: assinatura inválida, claims faltando ou registro desincronizado entre LMS e tool.
401 Unauthorized no /lti/launch
Possíveis causas:
“LTI id_token verification failed: signature verification failed”
A assinatura do id_token não bate com nenhuma chave do JWKS do LMS.
- Confirme que o
jwks_urlregistrado na Árvore é o JWKS do LMS, não o nosso - Limpe o cache de JWKS reiniciando os pods do api-arvore (cache de 1h)
- Verifique se o LMS rotacionou as chaves recentemente
”Deployment ID mismatch”
O deployment_id registrado na Árvore não bate com o que vem no claim. Geralmente acontece quando o LMS gera um novo deployment_id ao reinstalar a tool. Atualize o registro na Árvore.
”Invalid or replayed nonce”
O nonce enviado pelo LMS já foi consumido (mais de um launch com mesmo nonce) ou expirou (TTL 10min). Causas comuns:
- Usuário fez double-click no link
- Cache de browser repetindo a request
- Diferença grande de relógio entre LMS e Árvore
”Unsupported LTI message type”
A Árvore só aceita LtiResourceLinkRequest por enquanto. LtiDeepLinkingRequest ainda não é suportado.
Erro: “No platform found for issuer”
A combinação (iss, client_id, deployment_id) não está registrada na Árvore. Entre em contato com o time da Árvore para confirmar que o deployment do seu LMS foi cadastrado.
Aluno entra como usuário errado
Cenário: Maria clica no link do LMS e a Árvore loga como João.
Causas possíveis:
- O LMS está enviando
subigual para múltiplos usuários (bug do LMS, raro) - Existe uma conta antiga da Árvore com o mesmo
emailque veio no claim, e olti_user_linksnão estava preenchido — o fallback por email pegou a conta errada
Mitigação:
- Apague o registro errado em
lti_user_linkspara forçar nova resolução - Confirme com o LMS que o claim
emailé o email institucional do aluno
NRPS sync falha silenciosamente
O cron loga warnings mas não para o resto da execução. Procure no Datadog/SigNoz por:
NRPS sync failed for platform=<id>
Causas mais comuns:
auth_token_urlausente no registro da plataforma- LMS não habilitou o escopo
contextmembership.readonlypara a Árvore - Chave da Árvore foi rotacionada e o LMS ainda não buscou o novo JWKS
Como debugar localmente
Use o LTI Reference Implementation Tester do 1EdTech como Platform fake. Ele permite gerar id_token válidos e testar o launch sem precisar de um LMS real.
- Registre a Árvore como tool no LTI RI (ele vai gerar issuer, client_id, deployment_id)
- Compartilhe esses valores com o time da Árvore para registrar o deployment
- Use o tester para emitir launches e validar o fluxo completo