Errores

Un único formato para todos los errores, con un código estable legible por máquinas y un mensaje para personas.

Escrito a partir del código · actualizado el 26 sept 2026 · ¿Falta algo o hay un error? Escríbenos

{ "error": "entitlement_required", "message": "Guard is not enabled for this organisation", "details": { "upgrade": "/settings#plan" } }
StatuserrorCuándo
400invalid_bodyEl cuerpo no superó la validación; details.fieldErrors indica los campos
400invalid_json · invalid_query · emptyJSON mal formado, query string incorrecta, payload vacío
400no_agent_build · endpoint_required · no_connectionEl proyecto no está listo para una ejecución o para Guard
400invalid_cron · unknown_template · no_scenariosProgramaciones y ejecuciones
400missing_signature · invalid_signature · turnstile_failedVerificación de webhooks y formularios públicos
400config_error · invalid_provider · weak_passwordValidación de ajustes
400restricted_key_required · invalid_key_format · stripe_key_rejected · missing_permission · mode_mismatch · account_mismatchConectar o rotar Stripe: las claves live deben ser restringidas; details.missing indica los permisos que faltan
400project_required · egress_blocked · secret_required · not_configuredObservaciones y servicio de acceso
401unauthorized · invalid_credentialsCredencial ausente o incorrecta
402plan_limit_reachedEjecuciones mensuales del plan agotadas
403forbidden · entitlement_required · wrong_passwordRol insuficiente, funcionalidad no desbloqueada
404not_found · mandate_not_found · project_not_found · connection_not_found · agent_build_not_foundDesconocido o no es tuyo
409idempotency_key_reused · business_key_conflictMisma clave con otro cuerpo; mismo efecto ya propuesto
409digest_mismatch · approval_expired · not_reviewable · no_pending_approval · already_decidedAprobaciones
409mandate_inactive · project_pausedLa autoridad terminó, o el kill-switch está activo
409slug_taken · exists · already_enabled · already_onboardedConflictos
409use_billing · billing_not_configured · already_subscribed · no_billing_accountLos cambios de plan pasan por la facturación
409connection_in_useMandatos activos u operaciones sin terminar siguen usando la conexión
413payload_too_largeCuerpo por encima del límite
422no_priced_models · no_valid_casesCatálogo de IA o entrada de red team inutilizable
429rate_limitedDemasiadas peticiones desde esta IP
500internal_errorInesperado; reintenta una vez y luego contacta con soporte indicando la hora de la petición
502sandbox_unavailable · sync_failed · stripe_unreachableUna dependencia no respondió

Las decisiones no son errores: un DENY es un 202 con decision: "DENY" y decision_reasons explícitos. Los veredictos tampoco son errores.

Errores · Docs · COLVO