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 por API key usam a string literalUnauthenticated(veja a nota abaixo). Recusas do Access Manager e do Tenant Manager usam seus próprios códigos, incluindo os códigos de Erros de capacidade e autenticação.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 em respostas413 Payload Too Largee504 Gateway Timeout.
Para erros do lado do servidor (HTTP 5xx),
title e detail trazem valores genéricos. As recusas do Access Manager e do Tenant Manager mantêm seus próprios title e detail. 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 scope at index 0: scheme must be 1 to 50 characters of A-Z, 0-9, _ or - after trimming and upper-casing.
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.
O endpoint de validação retorna 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).
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
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. Nos dois códigos, detail traz um valor genérico. O campo message de nível superior traz o motivo específico.
Requisições de regras e limites, e os filtros de listagem scheme e transaction_type, também retornam 0540 quando os dois nomes têm valores diferentes.
Erros do elo de reserva
O Tracer retorna estes códigos ao ledger do Midaz no elo gRPC de reserva. A API HTTP do Tracer não os retorna. Um cliente da API do Ledger recebe códigos do Midaz em vez deles. Veja a lista de erros do Midaz.
Erros de capacidade 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.
As recusas do Access Manager incluem os códigos AUT- abaixo. AUT-0006 e AUT-0007 retornam HTTP 401, AUT-1020 retorna 403, AUT-0033 retorna 503 e AUT-1021 retorna 504. Com multi-tenant habilitado, o Tracer retorna TENANT_MANAGER_UNAVAILABLE (503) quando o Tenant Manager está indisponível e TENANT_MANAGER_TIMEOUT (504) quando ele não responde a tempo.
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 postgres, rule_cache e streaming. streaming é consultivo. Ele aparece nas checagens e métricas, mas nunca força um 503.

