application/problem+json content type:
type: A URI that identifies the error type, built ashttps://errors.lerian.studio/v1/followed by the error code.title: A brief summary of the issue.status: The HTTP status code of the response.detail: Detailed guidance for resolving the error. The tables below list this content in themessagecolumn.code: A unique, stable identifier for the error. It is usually a four-digit numeric string drawn from the shared platform error registry (for example,0347); authentication failures are the exception and use the literal stringUnauthenticated(see the note below).entityType: The entity the error relates to (for example,Rule). Only present when applicable.message: The human-readable reason, exposed verbatim as a top-level field. Only present on413 Payload Too Largeand504 Gateway Timeoutresponses; all other errors omit it.
For server-side errors (HTTP 5xx),
title and detail are sanitized to generic values so internal causes never leak. Use code and type to identify the error. For 504 timeouts, the top-level message field still carries the specific reason.0009 with the title Validation Error and a detail that names the specific field and constraint — for example, transactionType must be one of [CARD WIRE PIX CRYPTO].
Examples:
Two response families keep a legacy flat
{"code", "title", "message"} shape instead of the problem details object, because they are emitted by middleware that runs before the API layer. Authentication failures: a missing or invalid API key returns HTTP 401 with "code": "Unauthenticated", "title": "Unauthorized", and "message": "API Key missing or invalid" — match on the literal Unauthenticated string; a Bearer token that parses but lacks the required sub claim returns HTTP 401 with "code": "0474". Tenant capacity: code 0466 returns HTTP 503 in the same flat shape.General errors
These errors can be returned by any Tracer API endpoint.
Code
0009 also appears with the title Validation Error when field-level validation rejects a request — see the note above.
Code 0143 is returned with HTTP 413 when a request body exceeds the 100KB limit on the validation and reservation endpoints; the reason also appears in the top-level message field. Code 0497 is returned with HTTP 431 when the request headers are too large. Code 0484 is returned with HTTP 404 for a path the service does not serve, and code 0485 with HTTP 405 for a method the path does not accept.
Date and time errors
Pagination errors
Metadata errors
These errors are raised by the
metadata map on a validation request (POST /v1/validations) and on a reserve request (POST /v1/reservations).
A metadata key longer than 64 characters, or more than 50 metadata entries on one request, is rejected with HTTP
400.
CEL expression errors
Rules are written as CEL (Common Expression Language) expressions. These errors are raised when a rule expression is created, updated, or evaluated.
Rule errors
Limit errors
Audit event errors
Validation request errors
These errors are returned by the transaction-validation endpoints (
POST /v1/validations and the validation queries).
Codes
0422 and 0433 are returned with HTTP 504 Gateway Timeout — 0422 when a validation evaluation exceeds its deadline, 0433 when a list-validations query does. As with all 5xx responses, detail is sanitized; the specific reason is carried in the top-level message field.
Reservation errors
These errors are returned by the usage-reservation endpoints (
/reservations), the two-phase reserve / confirm / release surface. Reservation requests can also return the general and validation-request errors listed above.
Multi-tenant and authentication errors
The instance returns HTTP 503 with a
Retry-After header when it reaches its per-pod tenant worker cap; clients should back off and retry. A Bearer token that parses but lacks the required sub claim is rejected with HTTP 401.
Multi-tenant bootstrap errors
These codes surface only at service startup, when
MULTI_TENANT_ENABLED=true and a required configuration is missing or incompatible. They appear in startup logs and prevent the service from starting; they never reach /v1/* API consumers.
Readiness probe errors
These codes are surfaced by the operational
/readyz endpoint and by the worker-supervisor lifecycle. They appear in the error field of the /readyz JSON response — which carries the code only — not in /v1/* API responses. The title and message below describe each code for operator reference.
The /readyz cycle probes five dependencies: postgres and rule_cache always; redis and tenant_manager only in multi-tenant mode (skipped otherwise); streaming is advisory — it appears in the checks and metrics but never forces a 503.

