For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal
Theme

Errores y recuperación

Conoce los errores de la API de agentes y cómo recuperarte de ellos de forma segura.

Para obtener información general sobre los errores HTTP y las excepciones del SDK, consulta la guía de códigos de error común a las API.

Cómo examinar un error

Si falla una solicitud, revisa la respuesta HTTP. Si la falla ocurre durante un turno o al configurar el entorno, revisa los eventos y el estado guardado.

Falla Dónde buscar
Solicitud a la API Revisa el código de estado HTTP y el objeto error de la respuesta.
Turno Cuando recibas agent.session.turn.failed, recupera el turno y revisa status y error.
Sesión Cuando recibas agent.session.failed, recupera la sesión y revisa status y error.
Entorno Revisa environment.error en agent.session.environment.failed. Consulta la guía para solucionar problemas del sandbox.

Para los errores estructurados, usa error.code en la lógica de la aplicación y error.message para explicar la falla. En los errores de validación de solicitudes, error.param puede indicar qué campo debes corregir. Asegúrate de que el controlador de errores funcione incluso si recibe un código desconocido o si falta param.

En la API beta (OpenAI-Beta: agents=v1), el valor de error de una sesión es una cadena de texto con un mensaje o null. Consulta el evento SSE error asociado para obtener el código de la falla de sesión.

Errores de solicitud a la API

Estos errores se refieren a la solicitud enviada a la API de agentes. Se distinguen de los errores de turno, que se devuelven una vez iniciado el trabajo.

Código Descripción
400: invalid_request_error Causa: un valor de entrada o de configuración no es válido o es demasiado grande.
Solución: corrige el campo que indica error.param o error.message. Consulta Cómo corregir datos de entrada no válidos.
400: invalid_beta Causa: el encabezado OpenAI-Beta contiene un valor no válido.
Solución: verifica qué encabezado requiere la versión de la API que usas.
400: agent_not_persisted Causa: el agent_id que proporcionaste pertenece a un agente que solo existe dentro de una sesión.
Solución: crea un agente guardado y usa su ID.
400: invalid_otlp_endpoint, invalid_otlp_header Causa: el punto de acceso o los encabezados de seguimiento no son válidos.
Solución: corrige la configuración de seguimiento.
401: unauthorized; 403: forbidden Causa: falló la autenticación o quien realizó la solicitud no tiene acceso.
Solución: consulta la guía general de autenticación y permisos.
404: not_found_error, model_not_found Causa: el recurso o el modelo no está disponible para esta solicitud.
Solución: verifica el ID, el modelo y el proyecto, y comprueba si se eliminó el recurso.
409: conflict_error Causa: la operación es incompatible con el estado actual del recurso.
Solución: lee el mensaje y recupera el estado actual antes de volver a intentarlo.
409: executor_version_incompatible Causa: la versión del ejecutor no es compatible.
Solución: actualiza el ejecutor y vuelve a intentarlo.
424: mcp_server_startup_failed Causa: un servidor MCP no pudo iniciarse.
Solución: revisa la configuración y las credenciales del servidor. Consulta Cómo solucionar problemas de conexión.
429: files_api_rate_limit_exceeded Causa: las solicitudes de archivos superaron el límite de solicitudes de la API de archivos para tu usuario.
Solución: reduce la cantidad de solicitudes simultáneas y sigue las indicaciones sobre los límites de solicitudes de la API de archivos.
500: internal_error Causa: se produjo un error inesperado en el servicio.
Solución: revisa el trabajo guardado antes de volver a intentarlo. Consulta la guía general sobre errores del servidor.
503: service_unavailable_error, server_is_overloaded Causa: el servicio o una de sus dependencias presenta una interrupción temporal o una sobrecarga.
Solución: sigue las indicaciones generales para el error 503 y revisa el trabajo guardado antes de volver a intentarlo.

Límites de solicitudes de la API de archivos

Las solicitudes para crear sesiones o adjuntar archivos pueden devolver el código HTTP 429 con files_api_rate_limit_exceeded. La API de agentes verifica los archivos a través de la API de archivos. Estas verificaciones consumen parte de la cuota del usuario autenticado en la API de archivos. Cada archivo adjunto puede requerir una verificación por separado.

{
  "error": {
    "type": "rate_limit_error",
    "code": "files_api_rate_limit_exceeded",
    "message": "The Files API rate limit for your user has been exceeded. Reduce the rate of requests that access files, then try again.",
    "param": null
  }
}

Reduce la cantidad de solicitudes simultáneas que acceden a los archivos. Limita el número de intentos y aumenta de forma exponencial el tiempo de espera entre ellos. Si vuelves a intentarlo de inmediato, puedes seguir agotando la cuota.

Esta respuesta HTTP indica que la operación falló. Es un caso distinto al de una sesión o un turno que falla de forma asíncrona después de que la respuesta confirma su creación. Para identificar este error, revisa error.code en lugar de comparar el texto del mensaje.

Errores de turno

Un turno que falló tiene status: "failed" y un objeto error con los campos code y message. Por ejemplo, si el modelo está sobrecargado, puedes recibir lo siguiente:

{
  "code": "server_overloaded",
  "message": "The model is temporarily overloaded. Please retry your request after a brief delay."
}

Los códigos de error de turno no tienen un código de estado HTTP propio. Por ejemplo, un turno que falló usa server_overloaded, mientras que una respuesta HTTP puede usar server_is_overloaded.

Código Descripción
invalid_request Causa: los datos de entrada o la configuración no son válidos.
Solución: corrige los datos de entrada que indica el mensaje antes de volver a intentarlo.
context_length_exceeded Causa: los datos de entrada superan la ventana de contexto del modelo.
Solución: reduce los datos de entrada. Si la conversación es demasiado larga, inicia una nueva sesión con un resumen más breve.
session_budget_exceeded Causa: la sesión alcanzó su presupuesto de uso.
Solución: inicia una nueva sesión para continuar.
credit_balance_exhausted Causa: la organización agotó sus créditos de la API.
Solución: consulta las indicaciones sobre el saldo de créditos.
project_spend_limit_exceeded Causa: el proyecto alcanzó el límite de gasto que se le aplica.
Solución: consulta las indicaciones sobre el límite de gasto del proyecto.
organization_spend_limit_exceeded Causa: la organización alcanzó el límite de gasto que se le aplica.
Solución: consulta las indicaciones sobre el límite de gasto de la organización.
organization_usage_limit_exceeded Causa: la organización alcanzó el límite de uso que le asignó OpenAI.
Solución: consulta las indicaciones sobre el límite de uso de la organización.
usage_limit_exceeded Causa: se alcanzó un límite de facturación o de uso sin que se indicara un código más específico.
Solución: sigue las indicaciones generales sobre errores de facturación.
rate_limit_exceeded Causa: se superó uno de los límites de solicitudes aplicables.
Solución: sigue los pasos para volver a intentarlo.
server_overloaded Causa: el servicio del modelo está sobrecargado temporalmente.
Solución: espera un poco y retoma el trabajo pendiente. Si la sobrecarga persiste, cambia el modelo para los siguientes turnos.
flex_unavailable Causa: el procesamiento Flex no está disponible temporalmente.
Solución: vuelve a intentarlo más tarde o cambia el nivel de servicio de la sesión al procesamiento estándar (default) para los siguientes turnos.
connection_failed, request_timeout, server_error, internal_error Causa: una falla de conexión o del servicio, o el vencimiento del tiempo de espera, impidió que se completara el turno.
Solución: revisa el trabajo guardado y luego vuelve a intentarlo con un límite de intentos.
authentication_error Causa: no se pudo acceder al modelo debido a un problema de credenciales o permisos.
Solución: consulta la guía general de autenticación y permisos.
resource_not_found Causa: el modelo o recurso solicitado no está disponible.
Solución: verifica el modelo y revisa la configuración de la sesión antes de volver a intentarlo.
sandbox_error Causa: el entorno no pudo completar una operación.
Solución: revisa el error del entorno y corrige el problema de configuración o conectividad.
executor_version_incompatible Causa: el ejecutor no puede ejecutar este turno.
Solución: actualiza el ejecutor y vuelve a intentarlo en la misma sesión si esta no ha fallado.
active_turn_not_steerable Causa: el turno activo no admite más datos de entrada.
Solución: espera a que termine antes de enviar otro mensaje.
cyber_policy, misalignment_policy_violation Causa: los sistemas de seguridad bloquearon la solicitud.
Solución: verifica que la solicitud cumpla con los requisitos de seguridad aplicables antes de enviar los datos de entrada corregidos.

Errores de sesión y de entorno

Que un turno falle no siempre significa que la sesión haya fallado. Recupera la sesión para determinar si puedes continuar en ella. Si el valor de status es requires_action, atiende las acciones requeridas. Si la sesión falló, corrige la causa y crea una nueva sesión con los datos de entrada que aún necesites.

Código Descripción
environment_connection_failed, environment_connection_timeout Causa: el sandbox no pudo conectarse o tardó demasiado en hacerlo.
Solución: revisa el inicio del ejecutor y el acceso a la red. Si alojas el entorno en tu propia infraestructura, revisa la configuración de la conexión.
sandbox_error Causa: falló la configuración o la ejecución del sandbox.
Solución: revisa los comandos de configuración, los paquetes, los archivos de entrada y el error del entorno.
executor_version_incompatible Causa: la versión del ejecutor de la sesión no es compatible.
Solución: actualiza el ejecutor antes de crear una nueva sesión.
idle_timeout Causa: el entorno alojado caducó por inactividad.
Solución: crea una nueva sesión y vuelve a proporcionar los datos de entrada.
internal_error Causa: una falla interna impidió que la sesión o el entorno quedara listo para usarse.
Solución: espera un poco y vuelve a intentar la configuración. Si sigue fallando, ponte en contacto con el equipo de soporte.

Recuperación

Cómo volver a intentarlo tras una falla temporal

Usa este procedimiento cuando se alcance un límite de solicitudes, haya una sobrecarga, se agote el tiempo de espera o se produzca una falla temporal del servicio. Si hay problemas con los datos de entrada, las credenciales o los límites de facturación, resuélvelos antes de volver a intentarlo.

  1. Verifica el resultado. Si se creó una sesión, recupera la sesión, el turno y los elementos guardados. Si el turno sigue activo, continúa observando su progreso. Si se completó, usa su resultado.
  2. Revisa las acciones completadas. Es posible que un turno que falló ya haya modificado archivos o llamado a herramientas externas. Verifica los efectos de esas acciones antes de pedirle al agente que repita el trabajo.
  3. Espera y limita los reintentos. Sigue las indicaciones generales para los reintentos, respeta el tiempo indicado por Retry-After en las respuestas HTTP y establece un límite de intentos o un plazo máximo.
  4. Repite la solicitud o inicia un nuevo turno. Si recibes un error HTTP, verifica el resultado de la operación original y luego vuelve a intentarla. Si un turno falló, espera a que la sesión esté en estado idle y luego envía un mensaje de seguimiento en el que le pidas al agente que continúe solo con el trabajo pendiente. Así se inicia un nuevo turno en la conversación existente.

Revisa los resultados de las herramientas incluso cuando el turno se complete. Detén los reintentos automáticos si cambia el error o si se alcanza el límite de reintentos.

Cómo corregir datos de entrada no válidos

Corrige el campo que indica error.param o error.message antes de volver a enviar la solicitud.

Si el error se debe al tamaño, reduce el esquema de entrada y salida o el resultado de la herramienta antes de volver a intentarlo. Si la configuración del agente es demasiado grande, crea una nueva sesión con instrucciones y definiciones de herramientas más breves.

Para conocer los requisitos de carga y ver ejemplos, consulta Cómo resolver errores de carga. Si el mensaje indica que hay un problema con una imagen, revisa los datos o la URL de la imagen.

Flujos de eventos desconectados

Ni un evento error ni la desconexión del flujo de eventos confirman el estado final del turno. Sigue los pasos de Cómo recuperar un flujo de eventos desconectado para volver a conectarte y revisar el trabajo guardado antes de reenviar los datos de entrada. Si la sesión recuperada tiene status: "failed" o recibes agent.session.failed, deja de intentar reconectarte y sigue las indicaciones para recuperarte de una falla de sesión.

Si se producen errores persistentes, incluye el ID de la solicitud, el ID de la sesión y el ID del turno en tu solicitud de soporte.