Envoltura de error
La mayoría de las respuestas de error usan esta forma JSON compatible con OpenAI:type es una categoría amplia, code es un identificador
específico. Algunos fallos de camino rápido (notablemente los 429 a
nivel de espacio de trabajo) devuelven solo un código de estado HTTP
con las cabeceras relevantes y ningún cuerpo JSON.
Códigos de estado HTTP
| Estado | Significado | Causa típica |
|---|---|---|
400 | Solicitud incorrecta | Parámetros inválidos, campos requeridos faltantes, violación de esquema |
401 | No autorizado | Clave API faltante o inválida |
403 | Prohibido | Cuota insuficiente, o la clave no puede llamar a este modelo |
404 | No encontrado | El modelo o endpoint no existe |
429 | Demasiadas solicitudes | Límite de tasa alcanzado — ver Límites de tasa. La respuesta siempre incluye una cabecera Retry-After. |
500 | Error interno | Bug del lado de OrcaRouter |
502 | Error upstream | Todos los proveedores upstream fallaron (incluyendo cualquier cadena de respaldo) |
503 | Servicio no disponible | El modelo solicitado no está disponible temporalmente en upstream |
Tipos de error que puedes ver en error.type
error.type | De dónde viene |
|---|---|
orcarouter_api_error | Fallos del lado de la pasarela (auth, cuota, tasa, interno) |
upstream_error | El proveedor upstream devolvió un error o agotó el tiempo |
openai_error | Error upstream compatible con OpenAI preservado literalmente |
claude_error | Error upstream de Anthropic preservado literalmente |
gemini_error | Error upstream de Gemini preservado literalmente |
Códigos de error que puedes ver en error.code
Estos son códigos emitidos por la pasarela para fallos que se
originan en OrcaRouter (no en el upstream):
error.code | HTTP | Significado |
|---|---|---|
insufficient_user_quota | 403 | Crédito de la cuenta agotado. Recarga. |
model_not_found | 503 | Este modelo no está disponible para tu cuenta. |
model_price_error | 400 | El precio para este modelo no está configurado. Contacta soporte. |
api_not_implemented | 400 | Endpoint u operación no soportado para el modelo que elegiste. |
bad_request_body | 400 | El cuerpo de la solicitud no se pudo analizar. |
prompt_blocked | 400 | La política de seguridad del proveedor bloqueó el prompt antes de la generación. |
sensitive_words_detected | 400 | El filtro de contenido sensible rechazó el prompt. |
error.code (específico) y recurre a error.type (categoría
amplia).
Errores de streaming
Los errores durante una respuesta en streaming no pueden usar códigos de estado HTTP (el estado se envió cuando se abrió el flujo). El formato depende del endpoint:/v1/chat/completions y /v1/responses (compatibles con OpenAI)
El error llega como un fragmento data: {...} en banda:
data: como JSON; si tiene un campo error,
trata el flujo como fallido.
/v1/messages (compatible con Anthropic)
Anthropic usa eventos SSE con nombre. Un fallo de flujo llega como:
event: message_stop (o se corta) después del
evento de error.
Errores de respaldo
Cuandoextra_body.models está configurado y todos los modelos en
la cadena fallan, obtienes un 502 con detalles sobre el último
error upstream. Las cabeceras de respuesta X-Orca-Fallback-Level y
X-Orca-Fallback-Model indican qué respaldo se estaba intentando
cuando la cadena se agotó. Ver
Cabeceras de respuesta.