Skip to content

Códigos de error

Todos los errores que devuelve la pasarela llevan un code estable y legible por máquina. Actúa sobre el código, no sobre el mensaje: los mensajes están escritos para personas, llevan detalles concretos de cada petición y pueden cambiar. Los códigos forman parte del contrato de la API.

El sobre

Los errores comparten una misma forma en la API de administración, en los planos MCP y en el proxy WebSocket. El request_id se repite en la cabecera de respuesta X-Request-ID y en el registro de auditoría, así que puedes enlazar el mensaje que ve un usuario con la petición exacta que lo produjo.

json
{
  "error": {
    "code": "CLIENT_NOT_FOUND",
    "message": "Client not found",
    "request_id": "01J8Z5X9WQ4H0T6C3N2K7M1P8R"
  }
}

Códigos

CódigoSignificado
ALERT_NOT_FOUNDNo existe ninguna regla de alerta con ese id.
ALREADY_EXISTSYa existe una entidad con ese nombre.
ALREADY_REVOKEDLa clave de API ya estaba revocada.
APPROVAL_NOT_FOUNDNo existe ninguna solicitud de aprobación con ese id.
BACKUP_FAILEDNo se pudo crear la copia de seguridad de la base de datos.
BACKUP_STREAM_FAILEDLa copia de seguridad se creó pero falló al transmitirse al cliente.
BAD_REQUESTRespaldo genérico 4xx para una petición que la pasarela no pudo procesar.
BUNDLE_NOT_FOUNDNo existe ningún bundle con ese nombre.
CATALOG_ENTRY_NOT_FOUNDNo existe ninguna entrada de catálogo con ese slug.
CLIENT_NOT_FOUNDNo hay ningún cliente registrado con ese nombre — también se devuelve si pertenece a otro equipo.
COMPOSITE_NOT_FOUNDNo existe ninguna herramienta compuesta (macro) con ese nombre.
CONSUMER_EXISTSYa existe un consumidor con ese nombre.
CONSUMER_NOT_FOUNDNo hay ningún consumidor con ese id — también se devuelve si pertenece a otro equipo.
CSRF_VALIDATION_FAILEDUna mutación autenticada por sesión llegó sin una cabecera X-CSRF-Token coincidente.
DISCOVERY_ERROREl descubrimiento de herramientas contra el backend no devolvió nada utilizable.
EMPTY_BUNDLEEl bundle no tiene herramientas, así que no se puede generar un enlace de instalación.
EXAMPLE_NOT_FOUNDNo existe ningún ejemplo guardado con ese id para esta herramienta.
FORBIDDENQuien llama está autenticado pero no tiene el rol que requiere esta acción.
IMMUTABLE_ENTRYLas entradas de catálogo integradas no se pueden editar ni borrar en caliente.
IMPORT_ERRORUna importación de configuración no se pudo interpretar o aplicar; el mensaje indica el motivo.
INSTALL_LINK_NOT_FOUNDEl enlace de instalación no existe, o ha caducado.
INTERNAL_ERRORFallo interno no controlado; los detalles están en los logs bajo este id de petición.
INVALID_ARGSLos argumentos de un ejemplo guardado no encajan con el esquema de entrada de la herramienta.
INVALID_CREDENTIALSLa pareja usuario/contraseña fue rechazada al iniciar sesión.
INVALID_CRONNo se pudo interpretar la expresión cron de una programación.
INVALID_INTERVALEl intervalo de sondeo de un monitor está fuera del rango aceptado.
INVALID_MODESe indicó un modo de canary no reconocido.
INVALID_NAMEUn campo de nombre incumple las reglas de nomenclatura de su entidad.
INVALID_SCHEMAEl JSON Schema indicado no es un esquema de objeto válido.
INVALID_SESSION_IDLa cabecera Mcp-Session-Id no es un UUID v4.
INVALID_SLUGUn slug de catálogo no cumple el formato requerido en minúsculas con guiones.
INVALID_STEPSLa lista de pasos de una herramienta compuesta está vacía o no es utilizable.
INVALID_STRATEGYSe indicó una estrategia de balanceo de carga no reconocida.
INVALID_TARGETUna programación o monitor apunta a un objetivo que no corresponde a su tipo.
INVALID_URLUna URL indicada está mal formada, usa un esquema rechazado o resuelve a una dirección bloqueada.
INVALID_WEIGHTUn peso de balanceo o de canary está fuera del rango aceptado.
JSON_TOO_DEEPEl cuerpo JSON anida más de lo permitido (protección contra agotamiento del parser).
LAST_ADMIN_PROTECTEDEl cambio dejaría la instancia sin ningún usuario administrador, así que se rechazó.
LAST_SUPERADMIN_PROTECTEDEl cambio dejaría la instancia sin ningún super-admin sin equipo, así que se rechazó.
MCP_KEY_NOT_FOUNDNo existe ninguna clave de API MCP gestionada con ese id.
NAME_COLLISIONEl nombre ya está ocupado por otro tipo de entidad en el mismo espacio de nombres.
NOT_CONFIGUREDLa funcionalidad invocada todavía no tiene configuración en este cliente.
NOT_FOUND404 genérico para un recurso sin un código más específico.
NOT_PENDINGLa aprobación ya no está pendiente, así que no se puede aprobar ni rechazar.
NOT_RESTLa operación solo se aplica a clientes REST, y este cliente no lo es.
ORIGIN_NOT_ALLOWEDLa cabecera Origin del navegador falta o no está en la lista permitida configurada.
POLICY_EXISTSYa existe una política de guardas con ese nombre.
POLICY_NOT_FOUNDNo existe ninguna política de guardas con ese nombre.
RATE_LIMITEDSe superó un límite de peticiones; reintenta pasado el intervalo que indica la respuesta.
SCHEDULE_NOT_FOUNDNo existe ninguna programación de mantenimiento con ese id.
SCHEMA_UNAVAILABLENo se pudo obtener o interpretar el esquema OpenAPI/GraphQL del backend.
SECRETS_PROVIDER_ERROREl proveedor externo de secretos (p. ej. Vault) rechazó la petición o no pudo atenderla.
SECRETS_PROVIDER_UNCONFIGUREDLa operación necesita un proveedor externo de secretos y no hay ninguno configurado.
SECRET_BOX_NOT_CONFIGUREDSECRET_ENCRYPTION_KEY no está definida, así que la pasarela no guarda ni genera secretos.
SESSION_NOT_FOUNDNo existe ninguna sesión MCP con ese id.
SNAPSHOT_NOT_FOUNDNo existe ninguna instantánea de configuración con ese id.
SSO_DISCOVERY_FAILEDNo se pudo obtener el documento de descubrimiento del proveedor OIDC.
SSO_NOT_CONFIGUREDSe llamó a un endpoint de SSO sin tener OIDC configurado.
TARGET_NOT_FOUNDNo existe ningún destino de balanceo con ese id.
TEAM_NOT_FOUNDNo existe ningún equipo con ese id.
TOOL_ALIAS_CONFLICTEl alias ya está en uso por otra herramienta.
TOOL_ALIAS_INVALIDUn alias de herramienta incumple las reglas de nomenclatura de alias.
TOOL_NOT_FOUNDEl cliente existe pero no expone ninguna herramienta con ese nombre.
TOOL_NOT_LIVELa herramienta está catalogada pero no está activa ahora mismo en el registro.
TRACE_NOT_FOUNDNo existe ninguna traza con ese id.
TRAFFIC_NOT_FOUNDNo existe ningún registro de tráfico con ese id.
UNAUTHORIZEDNo se presentaron credenciales válidas, o la sesión ha caducado.
UNKNOWN_TOOLUn bundle o una compuesta referencia una herramienta que no existe.
UPSTREAM_AUTH_VAULT_UNSUPPORTEDEste modo de autenticación con el upstream no se puede almacenar en el proveedor Vault configurado.
USER_EXISTSYa existe un usuario administrador con ese nombre.
USER_NOT_FOUNDNo existe ningún usuario administrador con ese id.
VALIDATION_ERROREl cuerpo o la query de la petición no pasaron la validación; el mensaje indica el campo.
WS_PROXY_TARGET_NOT_FOUNDNo existe ningún destino de proxy WebSocket con ese nombre.

El estado HTTP no aparece a propósito: varios códigos se emiten con más de un estado. CLIENT_NOT_FOUND, por ejemplo, es el 404 de un cliente que no existe y —por diseño— el 404 idéntico de uno que pertenece a otro equipo, de forma que quien llama con ámbito de equipo no pueda sondear su existencia.

Distribuido bajo la licencia MIT · Construido con Bun + Vue.