Pular para o conteúdo principal

Tratamento de Erros

Para quem é esta página

Engenheiros front-end e back-end. Use esta tabela para implementar mensagens de erro na UI.

Tabela de Códigos de Erro

CódigoHTTPMensagemQuando ocorre
CAR-001401Não autenticadoToken ausente ou inválido
CAR-002403Acesso negadoSem permissão de role para o endpoint
CAR-003404Recurso não encontradoID inválido ou sem acesso (inclui 403 disfarçado)
CAR-004422Dados inválidosFalha de validação Pydantic
CAR-005413Arquivo muito grandeAcima de 50MB
CAR-006415Tipo não suportadoMIME type não aceito
CAR-007409Documento duplicadoHash SHA-256 já existe
CAR-008409Conflito de estadoEx: submeter processo já submetido
CAR-010400CPF inválidoFormato ou dígitos verificadores inválidos
CAR-011400Authorization code expiradoCallback OAuth2 tardio
CAR-012503Gov.br indisponívelTimeout na integração
CAR-020422Geometria inválidaPolígono não fecha ou auto-intersecção
CAR-021422Município não encontradoCódigo IBGE inválido
CAR-030503Assistente indisponívelLLM offline
CAR-040503Sistema externo indisponívelSICAR/SIGEF timeout
CAR-050429Rate limit excedidoMuitas requisições
CAR-060409Processo não pode ser submetidoDocumentação incompleta
CAR-070500Erro internoExceção não tratada

Formato do Erro

{
"error": {
"code": "CAR-004",
"message": "Dados de entrada inválidos",
"details": [
{
"field": "municipio_ibge",
"code": "invalid_format",
"message": "Deve ter exatamente 7 dígitos numéricos"
}
]
}
}
Para front-end

Use error.code (não error.message) para lógica condicional. A mensagem pode ser traduzida ou personalizada para o usuário — o código é estável.

Erros Comuns no Fluxo de Upload

SituaçãoCódigoO que mostrar ao usuário
Arquivo > 50MBCAR-005"O arquivo é muito grande. Limite: 50MB."
PDF corrompidoCAR-006"Este arquivo não pode ser lido. Tente enviar novamente."
Mesmo doc duas vezesCAR-007"Este documento já foi enviado anteriormente."
Conexão perdidaTimeout"Conexão interrompida. O upload será reiniciado."