Ir al contenido

Taxonomía de errores

Cuando una llamada al Gateway falla, recibes el error como una envoltura JSON uniforme:

{
"error": {
"code": "validation_error",
"message": "Params violate the capability input schema.",
"hint": "Call describe(id) and resend params matching input_schema.",
"retryable": false,
"audit_id": "audit_123"
}
}
CodeSignificado para Agents
validation_errorLa entrada no coincide con el esquema; leer describe y corregir
auth_requiredFalta el Bearer-Key o no es válido
scope_missingLa Key no tiene el scope necesario
not_found / version_not_foundVerificar ID o versión
not_implementedvisible en el catálogo, pero no invocable
dry_run_requiredprimero enviar un dry_run exitoso con los mismos parámetros
precondition_failedfalta una precondición de negocio, no repetir a ciegas
conflictEl estado objetivo genera conflicto, leer nuevamente y decidir
rate_limitedrespetar retry_after_seconds
budget_exceededaclarar Wallet, Budget o Policy
capability_disabledKill-Switch o bloqueo de Capability activo
approval_required / approval_rejectedse requiere Handover o decisión humana
upstream_errorun servicio externo/conectado no respondió correctamente
internal_errorreintentar más tarde; si se repite, proporcionar Audit-ID al soporte

retryable: true no significa «saturar inmediatamente». Reintenta con backoff, mismo Idempotency-Key y misma intención. Con retryable: false primero cambia la causa o deriva a una persona.

HTTP 412 precondition_failed en el flujo inicial es un comportamiento esperado cuando aún falta una precondición de negocio.

EndpointCuándo se espera 412Reacción
GET /org/currentantes del Owner-Claim o, si agent_email está configurado, antes de la verificación del correo del Agentcompletar el paso OTP faltante, luego usar nuevamente como lectura de estado
POST /keys/rotateantes del Owner-Claim o antes de la verificación requerida del correo del Agentcompletar flujo inicial; no reemplazar una Key perdida mediante un nuevo Bootstrap
POST /mcp/dry_runantes de OTPs requeridos o antes de Operator-Approvalhacer polling de /org/current hasta que operator_approval_status sea approved
POST /mcp/invokeantes de OTPs requeridos o antes de Operator-Approvalno trabajar operativamente; aplicar regla de polling o Handover

Reacción: Espera el código del Owner, llama a POST /owner-otp/claim y si agent_email está configurado, verifica adicionalmente POST /agent-otp/verify. Luego repite /org/current como lectura de estado. Si operator_approval_status permanece pending durante mucho tiempo, sigue la Solución de problemas.

Budgets & Kill-Switch