Skip to main content
The Tracer API returns errors as an RFC 9457 problem details object, served with the application/problem+json content type:
Field definitions
  • type: A URI that identifies the error type, built as https://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 the message column.
  • 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). API-key authentication failures use the literal string Unauthenticated (see the note below). Access Manager and Tenant Manager refusals use their own codes, including the codes in Capacity and authentication errors.
  • 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. Present on 413 Payload Too Large and 504 Gateway Timeout responses.
For server-side errors (HTTP 5xx), title and detail carry generic values. Access Manager and Tenant Manager refusals keep their own title and detail. Use code and type to identify the error. For 504 timeouts, the top-level message field still carries the specific reason.
Field-level validation Struct-level field validation failures return code 0009 with the title Validation Error and a detail that names the specific field and constraint, for example scope at index 0: scheme must be 1 to 50 characters of A-Z, 0-9, _ or - after trimming and upper-casing. Examples:
Two response families keep a legacy flat {"code", "title", "message"} shape instead of the problem details object. Middleware that runs before the API layer emits them. 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


Any Tracer API endpoint can return these errors. Code 0009 also appears with the title Validation Error when field-level validation rejects a request. See the note above. The validation endpoint returns code 0143 with HTTP 413 when a request body exceeds the 100KB limit. The reason also appears in the top-level message field. The Tracer API returns code 0497 with HTTP 431 when the request headers are too large. It returns code 0484 with HTTP 404 for a path the service does not serve. It returns code 0485 with HTTP 405 for a method the path does not accept.

Date and time errors


Pagination errors


Metadata errors


These errors come from the metadata map on a validation request (POST /v1/validations). The API returns HTTP 400 for a metadata key longer than 64 characters, or for more than 50 metadata entries on one request.

CEL expression errors


You write rules as CEL (Common Expression Language) expressions. These errors appear during rule expression creation, update, or evaluation.

Rule errors


Limit errors


Audit event errors


Validation request errors


The transaction-validation endpoints (POST /v1/validations and the validation queries) return these errors. The API returns codes 0422 and 0433 with HTTP 504 Gateway Timeout: 0422 when a validation evaluation exceeds its deadline, 0433 when a list-validations query does. For both codes, detail carries a generic value. The top-level message field carries the specific reason. Rule and limit requests, and the list filters scheme and transaction_type, also return 0540 when the two names carry different values.

Reservation seam errors


Tracer returns these codes to the Midaz ledger on the gRPC reservation seam. The Tracer HTTP API does not return them. A Ledger API client receives Midaz codes instead. See the Midaz error list.

Capacity 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 returns HTTP 401. Access Manager refusals include the AUT- codes below. AUT-0006 and AUT-0007 return HTTP 401, AUT-1020 returns 403, AUT-0033 returns 503 and AUT-1021 returns 504. With multi-tenancy on, Tracer returns TENANT_MANAGER_UNAVAILABLE (503) when the Tenant Manager is unavailable, and TENANT_MANAGER_TIMEOUT (504) when it does not answer in time.

Readiness probe errors


The operational /readyz endpoint and the worker-supervisor lifecycle surface these codes. 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 postgres, rule_cache, and streaming. streaming is advisory. It appears in the checks and metrics but never forces a 503.