error— código estable. Programa contra este campo, no contramessageni el HTTP status (a veces compartimos status entre causas distintas).message— texto corto para mostrar a un humano o loggear.request_id— UUID de la petición. Si reportas un problema, mándanos este valor — con eso ubicamos qué pasó en segundos.
Catálogo
Razones de denegación (primary_reason)
Cuando el HTTP status es 402 o 422, el campo primary_reason te dice por qué:
Buenas prácticas para manejar errores
Programa contra `error`, no contra `message`
Programa contra `error`, no contra `message`
El campo
message puede mejorar de redacción. El error es el contrato — no cambia.Loggea siempre el `request_id`
Loggea siempre el `request_id`
Es lo que te pedimos cuando reportas un bug. Sin ese ID nos cuesta minutos a horas encontrar la petición.
Reintenta solo `5xx` y `429`
Reintenta solo `5xx` y `429`
Los errores
4xx (excepto 429) son responsabilidad del cliente — reintentar no los va a arreglar.Backoff exponencial con jitter
Backoff exponencial con jitter
Para
429 y 5xx, espera 1s, 2s, 4s, 8s con un poco de aleatoriedad para no sincronizar reintentos.
