Errores
Todo error de la API v1 viene en el mismo envelope:
{
"error": {
"code": "INSUFFICIENT_SCOPE",
"message": "This token was not granted write access to this resource.",
"details": { "required": ["write", "all"], "granted": ["read"] }
}
}
Compara code, que es estable. El message es para personas y puede cambiar.
details aparece cuando hay algo que detallar.
Códigos
| Estado | code | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | cuerpo, filtro, ordenación o cursor inválidos |
| 401 | INVALID_TOKEN, INVALID_AUDIENCE, INVALID_ISSUER, TOKEN_EXPIRED, TOKEN_REVOKED | problema en el access token (Autenticación) |
| 403 | UNKNOWN_ORGANIZATION | la organización del token no está en Kadu |
| 403 | INSUFFICIENT_SCOPE | el token no tiene el alcance de la ruta (Permisos) |
| 403 | USER_PERMISSION_DENIED, NOT_A_MEMBER | el rol de la persona del token no lo permite |
| 403 | FEATURE_NOT_ENABLED | Kobana no habilitó esa operación para la organización |
| 403 | ENTITLEMENT_REQUIRED | lanzamiento sin Kadu en el plan de la organización |
| 404 | NOT_FOUND | el recurso no existe, fue eliminado o es de otra organización |
| 409 | CONFLICT | conflicto de estado (por ejemplo, nombre de entorno ya usado) |
| 409 | IDEMPOTENCY_KEY_REUSED, IDEMPOTENCY_REQUEST_IN_PROGRESS | ver Idempotencia |
| 413 | PAYLOAD_TOO_LARGE | cuerpo por encima de 1 MiB |
| 422 | MISSING_SECRETS | lanzamiento con secrets exigidos sin valor en el entorno |
| 422 | ENVIRONMENT_REQUIRED | lanzamiento sin un entorno válido |
| 422 | COST_LIMIT_REACHED | la organización alcanzó el tope mensual de costo |
| 429 | RATE_LIMITED | límite de solicitudes (Límites) |
| 500 | INTERNAL_ERROR | falla nuestra. El mensaje nunca trae detalles internos. |
| 503 | AS_UNAVAILABLE | la verificación del token no está disponible. Intenta de nuevo después del Retry-After. |
Además de estos, una ruta puede devolver un código propio, documentado en su referencia.
Qué hacer
| Estado | ¿Repetir? |
|---|---|
| 4xx | No: la misma solicitud va a fallar de nuevo. Corrige la causa. |
409 IDEMPOTENCY_REQUEST_IN_PROGRESS | Sí, después de algunos segundos, con la misma clave. |
| 429 | Sí, después del Retry-After. |
| 5xx | Sí, con espera creciente y la misma X-Idempotency-Key en las escrituras. |
El endpoint de lanzamiento usa el mismo envelope, con los códigos en minúsculas listados en su página.