GPT-6 Astra is now live on CometAPI →
technology/Investigación de CometAPI

Errores 401, 404, 429 y 5xx de CometAPI: ¿Reintentar o fallar?

Decide cuándo los errores 401, 404, 429 y 5xx de CometAPI deben provocar un fallo, reintentarse con backoff o activar una conmutación automática de modelo.

CometAPI
Bobby SpencerEquipo de investigación de modelos de IA y API
Actualizado Sep 4, 2026 9 min de lectura
Errores 401, 404, 429 y 5xx de CometAPI: ¿Reintentar o fallar?
Usa este patrón

Haz la primera llamada a la API.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_COMETAPI_KEY",
    base_url="https://api.cometapi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[{"role": "user", "content": "Build this workflow."}],
)

print(response.choices[0].message.content)

Respuesta breve: no cambies de Claude a GPT por cada solicitud fallida. Un 401 significa que la autenticación debe corregirse, y un 404 relacionado con la ruta significa que la URL o el endpoint deben corregirse. Un 429 o un 5xx temporal se pueden reintentar con backoff; si los reintentos acotados siguen fallando, un modelo de respaldo compatible puede hacerse cargo.

Hay una excepción importante: una respuesta 500 con error.code: invalid_request sigue siendo un problema de la solicitud. Reintentarlo—o enviar el mismo payload defectuoso a otro modelo—solo oculta el error.

Este artículo fue verificado el 20 de agosto de 2026 contra la documentación de CometAPI sobre errores, reintentos, URL base, límites de tasa y fallback de modelos. Cubre únicamente la clasificación de errores. Para el diseño de rutas, credenciales de proveedores y conmutación por error multinivel, usa el tutorial completo de fallback de modelos y la guía técnica de fallback.

Comienza con la decisión de reintentar o fallar

EstadoNormalmente significa¿Reintentar?¿Fallback?Primera acción
401Clave ausente o no válidaNoNoCorrige el token Bearer
404Ruta o endpoint incorrectoNoNoVerifica la URL base y la ruta
429Límite de tasa o saturaciónTras reintentos acotadosAplica backoff con jitter
500 + invalid_requestSolicitud malformadaNoNoCorrige el payload
500/503/504/524Falla temporal de plataforma o proveedorTras reintentos acotadosConserva el ID de la solicitud

La pregunta práctica no es “¿Falló Claude?” sino “¿Podría un modelo diferente tener éxito sin cambiar la parte inválida de esta solicitud?” Los errores de autenticación y de ruta afectan a la conexión misma, por lo que cambiar el modelo no puede resolverlos. Las fallas temporales de capacidad y del servidor pueden ser específicas de la ruta, por lo que un fallback puede ayudar.

Lee el error antes de cambiar de modelo

Usa el estado HTTP junto con error.code y error.message. Muchos fallos de CometAPI usan un sobre como este:

{
  "error": {
    "message": "human-readable detail and request id",
    "type": "comet_api_error",
    "param": "problematic_parameter_or_empty",
    "code": "error_code_or_empty"
  }
}

No clasifiques solo por el primer dígito del código de estado. Un 500 aún puede llevar invalid_request, mientras que una ruta incorrecta de CometAPI puede devolver un redireccionamiento o HTML en lugar de un 404 limpio en JSON.

401 No autorizado: detente y corrige la autenticación

Un 401 normalmente significa que la clave de API falta, está mal formada, caducó o se cargó desde el entorno equivocado. El encabezado debe ser:

Authorization: Bearer $COMETAPI_KEY

No reintentes y no cambies de modelo. Ambas rutas usan la misma autenticación defectuosa. Verifica si el servicio desplegado cargó un secreto antiguo, si se agregó espacio en blanco a la clave y si la solicitud está llegando al entorno previsto. Rota o recarga la clave solo a través de tu proceso de gestión de secretos.

404 No encontrado: corrige la URL antes del fallback

Para solicitudes compatibles con OpenAI, usa exactamente esta URL base:

https://api.cometapi.com/v1

La ausencia de /v1, un segmento de ruta duplicado o el endpoint incorrecto pueden producir 404, un redireccionamiento, una respuesta HTML o un error de parseo del SDK. Desactiva el seguimiento automático de redirecciones durante la depuración y confirma la ruta final de la solicitud contra la referencia del API.

Si la respuesta dice explícitamente que un modelo no está disponible o no se encuentra, verifica el ID del modelo en la actual CometAPI Models API. No trates cada 404 como indisponibilidad del modelo. Agrega un fallback específico del modelo solo después de haber capturado y probado esa señal exacta.

429 Demasiadas solicitudes: aplica backoff antes de pasar a fallback

Un 429 es reintetable. Usa backoff exponencial con jitter, reduce la concurrencia en ráfaga y mide qué ruta se está saturando. Un reintento inmediato desde cada worker puede convertir un límite de tasa corto en un pico de tráfico mayor.

Después de un número pequeño y acotado de reintentos, el fallback puede ser apropiado cuando el siguiente modelo admite la misma entrada, el mismo contrato de salida y las capacidades requeridas. El fallback no es gratis: agrega latencia y puede cambiar el costo o el comportamiento, así que registra con qué frecuencia se usa.

Errores 5xx: revisa el código y luego reintenta

500, 503, 504 y 524 suelen representar fallas de plataforma, proveedor o de tipo timeout. Conserva el ID de la solicitud, el endpoint, el modelo y la marca de tiempo, luego reintenta con backoff. Si la misma falla transitoria persiste tras agotar el presupuesto de reintentos, pasa a la siguiente ruta compatible.

Pero primero inspecciona el cuerpo. Cuando un 500 contiene error.code: invalid_request o invalid_request_error, corrige el cuerpo de la solicitud y reintenta solo después de que cambie. Causas comunes incluyen un campo messages faltante o un parámetro específico del proveedor que el endpoint seleccionado no acepta.

Usa una política pequeña en el código

Este ejemplo en Python mantiene reintentos y fallback en la aplicación. Usa una única clave de CometAPI, la URL base compatible con OpenAI y variables de entorno para los IDs actuales de los modelos de Claude y GPT. Solo reintenta fallas transitorias y cambia de modelos después de agotar el presupuesto de reintentos.

import os, random, time
from openai import APIError, OpenAI

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
    max_retries=0,
)
MODELS = [os.environ["CLAUDE_MODEL"], os.environ["GPT_MODEL"]]
RETRYABLE = {429, 500, 503, 504, 524}

def complete(messages):
    for model in MODELS:
        for attempt in range(3):
            try:
                response = client.chat.completions.create(model=model, messages=messages)
                return response.choices[0].message.content
            except APIError as error:
                status = getattr(error, "status_code", None)
                code = getattr(error, "code", None)
                if status in {401, 404} or code in {
                    "invalid_request", "invalid_request_error"
                }:
                    raise
                if status not in RETRYABLE:
                    raise
                if attempt < 2:
                    time.sleep(2**attempt + random.random())
                    continue
                break
    raise RuntimeError("No configured route completed.")

print(complete([{"role": "user", "content": "Summarize this ticket."}]))

Los reintentos automáticos del SDK están deshabilitados para que la aplicación controle el presupuesto total de reintentos y fallback. Sin ese control, los reintentos del SDK más los reintentos de la aplicación pueden multiplicar llamadas y retrasar la respuesta final.

Prueba la política sin adivinar

Señal simuladaResultado esperadoLo que no debe ocurrir
401Lanzar inmediatamenteSin reintento y sin llamada a GPT
404Lanzar inmediatamenteSin fallback que oculte una ruta incorrecta
429Backoff y luego fallbackSin tormenta de reintentos inmediatos
500 + invalid_requestLanzar inmediatamenteNo duplicar la solicitud defectuosa
503/504/524Backoff y luego fallbackSin cadena de rutas ilimitada

Estas son pruebas de política, no afirmaciones sobre la fiabilidad de proveedores en vivo. En staging, inyecta el estado y el cuerpo de error en el clasificador, verifica el número y orden de las llamadas y confirma que tu error final todavía incluya el contexto de la solicitud original.

Cuándo es realmente seguro el fallback de Claude a GPT

Cambiar de familia de modelos es seguro solo cuando ambas rutas pueden satisfacer el mismo contrato de aplicación. Normaliza los campos de solicitud y respuesta, prueba la salida estructurada o el comportamiento de herramientas en ambos modelos y verifica cualquier capacidad requerida de imagen, documento, contexto o razonamiento antes de habilitar la ruta.

El fallback también debe respetar los efectos secundarios. Si la primera ruta ya activó una herramienta, escribió datos o transmitió una respuesta parcial, repetir ciegamente toda la solicitud puede duplicar acciones o confundir al usuario. Reanuda desde un checkpoint o devuelve un fallo controlado en su lugar.

Controles en producción que mantienen acotados los reintentos

  • Define un único presupuesto total de latencia. Cuenta cada reintento y cada intento de fallback contra el mismo plazo.
  • Limita los reintentos. Usa backoff con jitter y detente tras un límite pequeño configurado.
  • Controla la concurrencia. Reduce las ráfagas antes de que las solicitudes salgan de la aplicación.
  • Agrega un disyuntor (circuit breaker). Deja de llamar temporalmente a una ruta que falla repetidamente.
  • Registra las decisiones. Captura estado, código de error, ID de solicitud, modelo, intento, retraso y motivo del fallback sin almacenar secretos.
  • Rastrea la tasa de fallback. Un aumento sostenido es una señal operativa, no una métrica de éxito normal.

Preguntas frecuentes

¿Debería un 401 activar alguna vez un fallback de modelo?

No. Corrige o recarga la clave de API. Un modelo diferente llamado con la misma credencial inválida fallará por la misma razón.

¿Debería un 404 activar fallback?

No por defecto. Primero corrige la URL base o el endpoint. Solo una señal verificada por separado de modelo no disponible debe ingresar al clasificador de fallback.

¿Cuántas veces debería reintentar un 429?

Usa un límite pequeño definido por la aplicación que se ajuste al presupuesto de latencia de cara al usuario. Aplica backoff con jitter y reduce la concurrencia; no reintentes de inmediato ni indefinidamente.

¿Se pueden reintentar todos los errores 5xx?

No. Las respuestas 500, 503, 504 y 524 temporales son candidatas a reintento, pero 500 con invalid_request debe fallar de forma estricta hasta que se corrija el payload.

¿Pueden Claude y GPT usar la misma solicitud sin cambios?

Solo para los campos compartidos que tu aplicación haya probado. Los parámetros específicos del proveedor, los formatos de herramientas, las salidas estructuradas y las entradas multimodales pueden requerir adaptadores. Un cambio solo de ID de modelo no prueba compatibilidad.

¿Dónde está la implementación completa de fallback?

Consulta How to Build Robust LLM Model Fallback Strategies para la arquitectura más amplia, y la guía de fallback de modelos de CometAPI para los detalles de implementación.

Haz que el clasificador de errores sea el guardián

El fallback automático es útil cuando es estrecho y observable. Deja que los errores de autenticación, de ruta y de solicitud malformada fallen de manera visible. Reintenta límites de tasa y fallas temporales del servidor con backoff, luego pasa a una ruta compatible solo después de agotar el presupuesto de reintentos. Esa política convierte el fallback en un control de fiabilidad en lugar de una forma de ocultar errores de configuración.

Fuentes

Seguir aprendiendo

Conecta este artículo con la siguiente decisión.

Ver todos los temas
Publicado el Sep 3, 2026
Última actualización Sep 4, 2026
4 visitas
Revisado para mayor claridad, atribución de fuentes y terminología API actual.

¿Listo para reducir los costos de desarrollo de IA en un 20%?

Comienza gratis en minutos. Créditos de prueba gratuitos incluidos. No se requiere tarjeta de crédito.

Leer Más