Troubleshooting
Objetivo
Resolver problemas comuns durante a integração e operação.
Container não sobe
Sintoma
docker compose up -d falha ou container reinicia em loop.
Diagnóstico
docker logs inji-verify-service --tail 100
docker ps -a | grep verify
docker stats --no-streamSoluções
| Causa | Solução |
|---|---|
| Porta 8080 em uso | sudo lsof -i :8080 e encerrar o processo |
| PostgreSQL não iniciou | Verificar logs: docker logs inji-verify-db |
| Memória insuficiente | Mínimo 4 GB RAM na VM |
Health check falha
Sintoma
curl http://localhost:8080/v1/verify/actuator/health retorna erro ou timeout.
Diagnóstico
docker ps | grep inji-verify-service
docker logs inji-verify-service --tail 20Soluções
- Container não está rodando →
docker compose up -d - Serviço ainda iniciando → aguardar 30-60 segundos (Spring Boot demora para iniciar)
- Banco inacessível → verificar se PostgreSQL está rodando
Schema do banco não existe
Sintoma
Logs do inji-verify-service mostram erros de “relation does not exist”.
Causa
O volume do PostgreSQL pode estar corrompido ou em estado inconsistente.
Solução
docker compose down
docker volume rm verificaidade_pgdata
docker compose up -dQR Code não funciona
Sintoma
Usuário escaneia o QR Code mas a Carteira Digital não responde.
Causas e soluções
| Causa | Solução |
|---|---|
| Versão do SDK incompatível | Use exatamente versão 0.17.0: npm install @injistack/react-inji-verify-sdk@0.17.0 |
| Versão do backend incompatível | Use exatamente versão 0.17.0 do INJI Verify Service |
| Carteira Digital não instalada | Orientar o usuário a instalar a INJI Wallet |
| INJI Verify Service inacessível pelo celular | Verificar que INJI_VP_SUBMISSION_BASE_URL é um domínio público |
| DID não resolve | Verificar INJI_DID_VERIFY_URI corresponde ao domínio público |
| URL expirada | Sessão expirou; iniciar nova verificação |
Usando localhost |
Em desenvolvimento, use ngrok ou túnel equivalente |
A causa mais comum é INJI_VP_SUBMISSION_BASE_URL apontando para localhost. A Carteira Digital no celular não consegue acessar localhost do seu computador. Certifique-se de usar exatamente a versão 0.17.0 do backend e SDK.
Deep Link não abre a Carteira (Mobile)
Sintoma
No celular, o link openid4vp://... não abre nada.
Soluções
- INJI Wallet não instalada → instalar a Carteira Digital
- Navegador bloqueia o scheme → testar em Chrome/Safari
- App não registrou o scheme → verificar se a versão da Wallet suporta
openid4vp://
SDK mostra erro de props
Sintoma
Console mostra erro de validação do SDK.
Causas comuns
Error: Cannot provide both presentationDefinition and presentationDefinitionId
→ Use uma ou outra, não ambas.
Error: Cannot provide both onVPReceived and onVPProcessed
→ Use um ou outro, não ambos.
Error: verifyServiceUrl is required
→ Passe a URL do INJI Verify Service.
Long-polling retorna timeout
Sintoma
O SDK fica aguardando e depois de ~55 segundos não recebe resultado.
Causas
- Cidadão não apresentou a credencial (normal — aguardar ou expirar)
- Wallet não consegue acessar o INJI Verify Service (ver “QR Code não funciona”)
- VP Submission falhou na Wallet
Solução
- Aumente o timeout se necessário:
INJI_VP_REQUEST_LONG_POLLING_TIMEOUT=120000(120s) - Verifique os logs:
docker logs inji-verify-service -f - O SDK refaz o long-polling automaticamente; o QR Code expira após o timeout configurado
PostgreSQL sem espaço em disco
Sintoma
Erros de escrita no banco de dados.
Solução
# Verificar espaço
df -h
# Limpar dados antigos (se aplicável)
docker exec inji-verify-db psql -U inji -d inji_verify \
-c "DELETE FROM vp_requests WHERE created_at < NOW() - INTERVAL '30 days';"
# Vacuum
docker exec inji-verify-db psql -U inji -d inji_verify -c "VACUUM FULL;"