Catálogo de Problems
Documentación de los 33 problem types que el API de Hub Log Middleware puede devolver. Cada response de error trae un campo type con un URI relativo del estilo /api/v1/problems/<slug> que dereferenciás contra el host del servicio para ver la doc humana en HTML, o caés acá si llegaste por el sitio público (hub.fracttal.com/hub-log/problems/).
El servicio cumple RFC 9457 — Problem Details for HTTP APIs. Todos los responses de error usan Content-Type: application/problem+json.
Tabla resumen
| Status | Problem | Retry | Descripción |
|---|---|---|---|
400 |
Artifact Type Unsupported | No reintentar | El tipo de artifact solicitado no es uno de los soportados. |
400 |
run_id Encoding Invalid | No reintentar | El run_id contiene caracteres especiales sin URL-encoding. |
401 |
Invalid Token Signature | No reintentar | La firma del JWT no se verifica contra el secreto del servicio. |
401 |
Malformed Bearer Token | No reintentar | El token Bearer no tiene la estructura de un JWT válido. |
401 |
Missing Bearer Token | No reintentar | El request no incluye un header Authorization con un token Bearer. |
401 |
OAuth2 Credentials Invalid | No reintentar | Las credenciales presentadas a /oauth/token son incorrectas o el cliente está deshabilitado. |
401 |
OAuth2 Token Missing id_client | No reintentar | El JWT viene marcado como OAuth2 pero no contiene id_client. |
401 |
Token Expired | No reintentar | El token ya pasó su tiempo de validez (campo exp del JWT). |
401 |
Token Missing id_company | No reintentar | El JWT verificó firma pero no contiene el claim id_company. |
401 |
Web Session Inactive | No reintentar | La sesión web expiró por inactividad o invalidación del backend. |
401 |
Web Session Revoked | No reintentar | La sesión web fue cerrada explícitamente en el backend de Fracttal. |
403 |
OAuth2 ETL Access Denied | No reintentar | El cliente OAuth2 autenticó correctamente pero no tiene permisos para el módulo ETL. |
404 |
Artifact Not Found | No reintentar | El run existe pero la fase solicitada no produjo el artifact pedido. |
404 |
Resource Not Found | No reintentar | El recurso solicitado no existe en el sistema. |
404 |
Run Not Found | No reintentar | El run_id no corresponde a ninguna ejecución registrada en la fecha indicada. |
405 |
Method Not Allowed | No reintentar | El método HTTP usado no está permitido en este endpoint. |
422 |
dag_id Required | No reintentar | El endpoint requiere dag_id y no se envió. |
422 |
Date Format Invalid | No reintentar | Una fecha del request no respeta el formato ISO 8601 (YYYY-MM-DD). |
422 |
Date Range Inverted | No reintentar | date_to es anterior a date_from — el rango está invertido. |
422 |
Date Range Too Large | No reintentar | El rango de fechas excede el máximo permitido por el endpoint. |
422 |
Interval Invalid | No reintentar | El parámetro interval del timeline está fuera del enum permitido. |
422 |
Pagination Out Of Range | No reintentar | Los parámetros limit o page están fuera del rango permitido. |
422 |
Phase Invalid | No reintentar | El parámetro phase está fuera del enum permitido. |
422 |
Status Filter Invalid | No reintentar | El filtro de status no está en el enum permitido. |
422 |
Validation Error | No reintentar | Uno o más campos del request no pasaron la validación. El response incluye un array errors[] con detalle por campo. |
429 |
Rate Limit Exceeded | Reintentar con backoff exponencial | El cliente envió demasiadas requests en un período corto. Esperá retry_after_seconds antes de reintentar. |
500 |
Unexpected Server Error | Reintentar 1 vez | Ocurrió un error inesperado procesando tu request. |
500 |
Analytics Error | Reintentar 1 vez | No pudimos procesar la consulta analítica solicitada. |
502 |
Upstream Service Error | Reintentar con backoff exponencial | Un servicio del que dependemos respondió con un error inesperado. |
502 |
Data Temporarily Unavailable | Reintentar con backoff exponencial | No se pudo acceder a los datos del run en este momento. |
503 |
Service Temporarily Unavailable | Reintentar con backoff exponencial | El servicio está temporalmente indisponible y rechaza requests para protegerse. |
504 |
Request Timed Out | Reintentar con backoff exponencial | El servicio tardó más de lo permitido en responder. |
504 |
Analytics Timeout | No reintentar | La consulta analítica tardó más de lo permitido en completarse. |