application/problem+json:
type: Uma URI que identifica o tipo do erro, construída comohttps://errors.lerian.studio/v1/seguido do código do erro.title: Um resumo breve do problema.status: O código de status HTTP da resposta.detail: Orientação detalhada para resolver o erro. As tabelas abaixo listam esse conteúdo na colunamessage.code: Um identificador único e estável para o erro. Normalmente é uma string numérica de quatro dígitos, extraída do registro de erros compartilhado da plataforma (por exemplo,0347). Falhas de autenticação são a exceção e usam a string literalUnauthenticated(veja a nota abaixo).entityType: A entidade à qual o erro se relaciona (por exemplo,Rule). Presente apenas quando aplicável.message: O motivo legível por humanos, exposto literalmente como campo de nível superior. Presente apenas em respostas413 Payload Too Largee504 Gateway Timeout. Todos os outros erros o omitem.
Para erros do lado do servidor (HTTP 5xx),
title e detail trazem valores genéricos para que causas internas nunca vazem. Use code e type para identificar o erro. Em timeouts 504, o campo message de nível superior ainda traz o motivo específico.0009 com o título Validation Error e um detail que nomeia o campo específico e a restrição, por exemplo transactionType must be one of [CARD WIRE PIX CRYPTO].
Exemplos:
Duas famílias de resposta mantêm um formato plano legado
{"code", "title", "message"} em vez do objeto problem details. Um middleware executado antes da camada da API as emite. Falhas de autenticação: uma chave de API ausente ou inválida retorna HTTP 401 com "code": "Unauthenticated", "title": "Unauthorized" e "message": "API Key missing or invalid". Compare com a string literal Unauthenticated. Um token Bearer que é interpretado, mas não tem a claim sub obrigatória, retorna HTTP 401 com "code": "0474". Capacidade do tenant: o código 0466 retorna HTTP 503 no mesmo formato plano.Erros gerais
Qualquer endpoint da API do Tracer pode retornar estes erros.
O código
0009 também aparece com o título Validation Error quando a validação em nível de campo rejeita uma requisição. Veja a nota acima.
Os endpoints de validação e reserva retornam o código 0143 com HTTP 413 quando o corpo da requisição excede o limite de 100KB. O motivo também aparece no campo message de nível superior. A API do Tracer retorna o código 0497 com HTTP 431 quando os headers da requisição são muito grandes. Ela retorna o código 0484 com HTTP 404 para um path que o serviço não atende. Ela retorna o código 0485 com HTTP 405 para um método que o path não aceita.
Erros de data e hora
Erros de paginação
Erros de metadados
Estes erros vêm do mapa
metadata em uma requisição de validação (POST /v1/validations) e em uma requisição de reserva (POST /v1/reservations).
A API retorna HTTP
400 para uma chave de metadados com mais de 64 caracteres, ou para mais de 50 entradas de metadados em uma requisição.
Erros de expressão CEL
Você escreve regras como expressões CEL (Common Expression Language). Estes erros aparecem durante a criação, atualização ou avaliação da expressão da regra.
Erros de regra
Erros de limite
| 0371 | Caracteres inválidos no nome do limite | O nome do limite contém caracteres inválidos. |
| 0372 | Caracteres inválidos na descrição do limite | A descrição do limite contém caracteres inválidos. |
| 0373 | ID de limite inválido | O ID do limite é inválido ou nulo. |
| 0378 | Falha na verificação do limite | Falha na verificação do limite. |
| 0379 | Entrada de limite nula | A entrada do limite não pode ser nula. |
| 0380 | Campo imutável do limite | Não é possível modificar um campo imutável (limitType, asset). |
| 0438 | Incompatibilidade na janela de tempo do limite | ActiveTimeStart e activeTimeEnd devem estar ambos definidos ou ambos nulos. |
| 0442 | Nome do limite já existe | O nome do limite já existe. |
| 0447 | Formato de início customizado do limite inválido | Formato de customStartDate inválido, esperado RFC3339. |
| 0448 | Formato de fim customizado do limite inválido | Formato de customEndDate inválido, esperado RFC3339. |
| 0449 | Datas customizadas do limite obrigatórias | CustomStartDate e customEndDate são obrigatórios para o limitType CUSTOM. |
Erros de evento de auditoria
Erros de requisição de validação
Os endpoints de validação de transação (
POST /v1/validations e as consultas de validação) retornam estes erros.
A API retorna os códigos
0422 e 0433 com HTTP 504 Gateway Timeout: 0422 quando uma avaliação de validação excede seu prazo, 0433 quando uma consulta de listagem de validações excede o dela. Como em todas as respostas 5xx, detail traz um valor genérico. O campo message de nível superior traz o motivo específico.
Erros de reserva
Os endpoints de reserva de uso (
/reservations) retornam estes erros. Eles formam a superfície de duas fases reserve / confirm / release. Requisições de reserva também podem retornar os erros gerais e de requisição de validação listados acima.
| 0487 | Tenant obrigatório na reserva | Reserva: o id do tenant é obrigatório na superfície de reserva multi-tenant. |
Erros de multi-tenant e autenticação
A instância retorna HTTP 503 com um header
Retry-After quando atinge o limite de workers de tenant por pod. Os clientes devem aplicar backoff e tentar novamente. Um token Bearer que é interpretado, mas não tem a claim sub obrigatória, retorna HTTP 401.
Erros de inicialização multi-tenant
Estes códigos aparecem apenas na inicialização do serviço, quando
MULTI_TENANT_ENABLED=true e uma configuração obrigatória está ausente ou incompatível. Eles aparecem nos logs de inicialização e impedem que o serviço inicie. Eles nunca chegam aos consumidores da API /v1/*.
Erros de readiness probe
O endpoint operacional
/readyz e o ciclo de vida do worker-supervisor expõem estes códigos. Eles aparecem no campo error da resposta JSON de /readyz (que traz apenas o código), não nas respostas da API /v1/*. O title e o message abaixo descrevem cada código como referência para operadores.
O ciclo de /readyz verifica cinco dependências. Ele sempre verifica postgres e rule_cache. Ele verifica redis e tenant_manager apenas no modo multi-tenant, e os ignora caso contrário. streaming é consultivo. Ele aparece nas checagens e métricas, mas nunca força um 503.

