El manejo de errores de CometAPI es más sencillo cuando separas los problemas de forma de la solicitud, problemas de autenticación, errores de ruta y fallos de plataforma reintentables. Usa la combinación del estado HTTP,Documentation Index
Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
Use this file to discover all available pages before exploring further.
error.code y error.message para decidir si debes corregir la solicitud o reintentarla.
Triaje rápido
| Status | Lo que normalmente significa | ¿Reintentar? | Primera acción |
|---|---|---|---|
400 | La validación de la solicitud falló antes de que la solicitud se procesara normalmente. | No | Valida model, messages, la estructura JSON y los tipos de campo. |
401 | La clave API falta, está mal formada o no es válida. | No | Comprueba Authorization: Bearer <COMETAPI_KEY>. |
403 | El acceso fue bloqueado o la solicitud actual no estaba permitida. | Normalmente no | Reintenta con una solicitud conocida que funcione y elimina primero los campos específicos del modelo. |
| Error de ruta | URL base incorrecta o ruta del endpoint incorrecta. En Comet esto puede aparecer como una redirección 301 o HTML, no como un 404 JSON limpio. | No | Usa https://api.cometapi.com/v1 exactamente y desactiva el seguimiento automático de redirecciones mientras depuras. |
429 | Limitación de tasa o saturación temporal. | Sí | Usa backoff exponencial con jitter. |
500 con error.code: invalid_request | Una solicitud mal formada apareció a través de una respuesta con estado de servidor. | No | Corrige el cuerpo de la solicitud antes de reintentar. |
500, 503, 504, 524 | Fallo de plataforma, proveedor o de tipo timeout. | Sí | Reintenta con backoff y conserva el request id. |
Envoltorio de error
Muchos fallos de CometAPI usan un cuerpo de error como este:code vacío. Cuando el estado es 500, trata error.code y error.message como la señal decisiva.
400 Bad Request
Un 400 normalmente significa que el cuerpo de la solicitud no superó la validación antes de que pudiera procesarse con normalidad.
Causas comunes:
- Faltan campos obligatorios como
model - Estructura JSON no válida
- Envío de un campo con el tipo incorrecto
- Reutilización de parámetros específicos del proveedor que el endpoint seleccionado no acepta
your-model-id por cualquier model ID actual de la página de modelos de CometAPI.
No asumas que toda solicitud de chat mal formada devuelve 400. La ausencia de campos de chat obligatorios como messages también puede aparecer como 500 con error.code: invalid_request.
500 Internal Server Error
La mayoría de las respuestas 500 indican un fallo de plataforma o del proveedor. Para Chat Completions, algunas solicitudes mal formadas también pueden aparecer como 500 y aun así incluir error.code: invalid_request.
Un ejemplo es una solicitud que omite messages:
500 tiene error.code: invalid_request, trátala como un problema de solicitud:
- Corrige el cuerpo de la solicitud.
- Compara el payload con el esquema del endpoint.
- Reintenta solo después de corregir el payload.
500 no apunta a una solicitud no válida, conserva el request id y usa backoff.
401 Invalid Token
Un fallo de token normalmente se ve así:
- El encabezado debe ser exactamente
Authorization: Bearer <COMETAPI_KEY>. - Asegúrate de que tu aplicación no esté cargando una clave antigua desde
.env, el historial del shell o un almacén de secretos desplegado. - Si una clave falla y otra funciona en la misma solicitud, trátalo como un problema de token, no como un problema del endpoint.
403 Forbidden
403 suele corresponder a una de estas situaciones:
- La solicitud está bloqueada por una regla del lado de la plataforma, como un filtrado WAF
- El token o la ruta no tienen permiso para usar el model solicitado o la forma de solicitud requerida
- El model elegido rechaza uno de los parámetros avanzados que enviaste
- Reintenta con una solicitud de texto muy simple contra un model conocido que funcione.
- Elimina los campos avanzados y los parámetros específicos del proveedor, y luego vuelve a agregarlos gradualmente.
- Si la respuesta incluye un request id, guárdalo antes de contactar con soporte.
URL base incorrecta o ruta incorrecta
En Comet, un error en la ruta puede manifestarse como:- Una redirección
- Una respuesta HTML no JSON si tu cliente sigue redirecciones
- Un error de análisis dentro de tu SDK
- Una solicitud que nunca llega limpiamente a la capa de API
- Confirma que la URL base incluya
/v1. - Confirma que la ruta del endpoint coincida exactamente con la documentación.
- Desactiva el seguimiento automático de redirecciones mientras depuras problemas de ruta.
413 Request Entity Too Large
Si ves 413, trátalo primero como un problema de tamaño de la solicitud. Los sospechosos habituales son:
- Cargas útiles base64 grandes
- Imágenes o audio demasiado grandes incrustados en línea
- Cuerpos multipart o JSON muy grandes
- Reduce o comprime el contenido adjunto.
- Divide los trabajos grandes en solicitudes más pequeñas.
- No asumas que la longitud del texto plano es la única causa.
429 Too Many Requests
Trata 429 como reintentable:
- Usa exponential backoff con jitter.
- Reduce la concurrencia en ráfaga.
- Mantén activado el registro de solicitudes para que puedas ver qué ruta y qué model se están saturando primero.
503, 504, and 524
Estos estados son fallos del lado del servidor o de la clase de timeout.
Guía práctica:
503: la ruta o el servicio del proveedor no están disponibles temporalmente504y524: fallos de tipo timeout entre la plataforma, el edge o el servicio del proveedor
- Reintenta con backoff.
- Conserva el
request id, el endpoint, el model y la marca de tiempo. - Si el mismo fallo se repite en varios reintentos, contacta con soporte con ese contexto.
Antes de contactar con soporte
Captura primero estos detalles:- Método HTTP
- Ruta del endpoint
- Model ID
- JSON del cuerpo de la solicitud sanitizado (este es el elemento más útil para la mayoría de las llamadas a la API)
- Parámetros de consulta si la solicitud que falló los usó
- Cuerpo exacto de la respuesta si tu cliente lo capturó
- Estado HTTP completo
- El
error.messageexacto - Cualquier
request id - Marca de tiempo aproximada
- Si la misma solicitud funciona con otro modelo u otro token
- Nombres de campo y valores de texto que enviaste junto con el archivo
- Nombre del archivo, tipo de archivo y tamaño aproximado del archivo
- Si el archivo se subió directamente, se referenció mediante URL o se incrustó como base64