code: Un identificador único y estable para el error (formato: TRC-XXXX).
title: Un breve resumen del problema.
message: Orientación detallada para resolver el error.
Detalles de errores a nivel de campoPara problemas específicos de campos individuales, un objeto fields proporciona contexto adicional.Ejemplos:
{ "code":"TRC-0106", "title":"Missing Required Field", "message":"The name field is required. Please provide a name for the rule and try again.", "fields": { "name": "name is a required field" }}
Los fallos de autenticación devuelven "code": "Unauthenticated" (no es un código TRC) con HTTP 401. Este es un identificador estable y conocido en lugar de un código TRC, por lo que los clientes deben coincidir con la cadena literal.
Estos errores provienen del subsistema de contadores de uso que respalda la aplicación de límites de gasto. La mayoría se surfacean como respuestas HTTP 500 Internal Server Error con el código TRC correspondiente.
code
title
message
TRC-0160
Usage Counter Overflow
The usage counter would overflow. Please contact support.
TRC-0161
Internal Server Error
Usage counter limitID is required (internal invariant). Please contact support.
TRC-0162
Internal Server Error
Usage counter scopeKey is required (internal invariant). Please contact support.
TRC-0163
Internal Server Error
Usage counter periodKey is required (internal invariant). Please contact support.
TRC-0164
Internal Server Error
Usage counter currentUsage must be non-negative (internal invariant). Please contact support.
TRC-0165
Internal Server Error
Increment amount must be non-negative (internal invariant). Please contact support.
TRC-0166
Usage Counter Not Found
The usage counter for this limit and scope does not exist. Please verify the limit configuration.
TRC-0167
Limit Exceeded
The transaction would exceed the limit maximum. The validation will be denied.
TRC-0168
Internal Server Error
Decrement amount must be non-negative (internal invariant). Please contact support.
Estos errores ocurren durante la aplicación de límites en solicitudes de validación. La mayoría son invariantes internas; las variantes orientadas al usuario suelen surfacearse a través de los errores de Solicitud de Validación (serie TRC-0220).
code
title
message
TRC-0180
Invalid Amount
The transaction amount must be positive for limit checks. Please provide a valid amount.
TRC-0181
Invalid Currency
The currency must be a valid ISO 4217 code for limit checks. Please verify the currency code.
TRC-0183
Unknown Limit Type
The limit type is not recognized for period key calculation. Please contact support.
TRC-0184
Invalid Timestamp
The timestamp must not be zero for limit checks. Please provide a valid timestamp.
TRC-0185
Internal Server Error
Limit check input is missing or null (internal invariant). Please contact support.
TRC-0186
Missing Account ID
The account ID is required for limit checks. Please provide an accountId.
TRC-0187
Invalid Transaction Type
The transactionType must be one of CARD, WIRE, PIX, or CRYPTO for limit checks.
TRC-0188
SubType Too Long
The subType exceeds the maximum length of 50 characters for limit checks.
TRC-0189
Invalid Segment ID
The segmentId cannot be the zero UUID. Please provide a valid UUID.
TRC-0190
Invalid Portfolio ID
The portfolioId cannot be the zero UUID. Please provide a valid UUID.
TRC-0191
Invalid Merchant ID
The merchantId cannot be the zero UUID. Please provide a valid UUID.
Estos códigos se surfacean durante el inicio del servicio o por validaciones de constructor. No se devuelven en solicitudes de clientes, pero pueden aparecer en los logs de inicio.
Estos códigos son emitidos por el endpoint operativo /readyz y por el ciclo de vida del worker supervisor. Aparecen en el campo error de la respuesta JSON de /readyz, no en las respuestas de los endpoints /v1/*. Los operadores dependen del código literal (no del mensaje) para alertas en dashboards.
code
title
message
TRC-0328
Database Connection Not Established
The PostgreSQL connection has not been established. Wait for service startup to complete.
TRC-0329
Database Connection Failed
The PostgreSQL connection attempt failed. Check database availability and credentials.
TRC-0330
Database Ping Failed
The PostgreSQL ping probe failed. The database may be unreachable or unresponsive.
TRC-0331
Dependencies Unhealthy
One or more dependencies reported unhealthy on the readiness probe. The service is returning HTTP 503.
TRC-0332
Rule Cache Not Ready
The rule cache is not ready to serve readiness traffic. The service will become ready after warm-up completes.
TRC-0333
Rule Cache Stale
The rule cache data is stale beyond the configured threshold. Background sync may be lagging.
TRC-0334
Worker Supervisor Shutting Down
The worker supervisor is shutting down and refused to spawn new tenant workers. New tenants will be rejected with HTTP 503 until the next instance is healthy.
Estos códigos aparecen solo en el arranque del servicio cuando MULTI_TENANT_ENABLED=true y una configuración obligatoria está ausente o es incompatible. Aparecen en los logs de arranque (e impiden que el servicio inicie) — nunca llegan a los consumidores de la API /v1/*.
code
title
message
TRC-0320
Multi-Tenant Config Required
Multi-tenant configuration is required when MULTI_TENANT_ENABLED=true. Please verify the service configuration.
TRC-0321
Multi-Tenant Logger Required
Multi-tenant initialization requires a logger instance. This is a service-internal error; contact support.
TRC-0322
Multi-Tenant URL Required
MULTI_TENANT_URL must be set when MULTI_TENANT_ENABLED=true. Set the Tenant Manager URL and restart the service.
TRC-0323
Multi-Tenant URL Invalid
MULTI_TENANT_URL must be a valid absolute URL with scheme and host (e.g., https://tenant-manager.example.com).
TRC-0324
Multi-Tenant Service API Key Required
MULTI_TENANT_SERVICE_API_KEY must be set when MULTI_TENANT_ENABLED=true. Provide the API key for calling the Tenant Manager.
TRC-0325
Multi-Tenant Redis Host Required
MULTI_TENANT_REDIS_HOST must be set when MULTI_TENANT_ENABLED=true. The shared Redis Pub/Sub host is required for tenant lifecycle events.
TRC-0326
Plugin Auth Required for Multi-Tenant
MULTI_TENANT_ENABLED=true requires PLUGIN_AUTH_ENABLED=true. Enable plugin authentication and restart the service.
TRC-0327
API-Key-Only Validation Incompatible with Multi-Tenant
MULTI_TENANT_ENABLED=true is incompatible with API_KEY_ENABLED_ONLY_VALIDATION=true. Choose one mode and restart the service.
The instance has reached its per-pod tenant cap and cannot serve this tenant right now. The response includes a Retry-After header — clients should back off and retry. The cap auto-resets as the LRU pool evicts cold tenants.
Cuando el JWT está ausente, malformado, expirado o sin el claim tenantId, los despliegues multi-tenant retornan HTTP 401 con "code": "Unauthenticated" — el mismo código emitido cuando falta la API key en modo single-tenant. No se emite un código TRC separado para fallas de autenticación de tenant.