Формат ошибки
Большинство ответов с ошибкой используют этот OpenAI-совместимый JSON-формат:type — это широкая категория, code — конкретный идентификатор. Некоторые
сбои «быстрого пути» (особенно 429 на уровне рабочего пространства)
возвращают только код HTTP-статуса с соответствующими заголовками и без
тела JSON.
Коды HTTP-статуса
| Статус | Значение | Типичная причина |
|---|---|---|
400 | Bad request | Некорректные параметры, отсутствуют обязательные поля, нарушение схемы |
401 | Unauthorized | Отсутствует или некорректен API-ключ |
403 | Forbidden | Недостаточно квоты или ключ не может вызвать эту модель |
404 | Not found | Модель или эндпоинт не существует |
429 | Too many requests | Достигнут лимит запросов — см. Лимиты запросов. Ответ всегда содержит заголовок Retry-After. |
500 | Internal error | Ошибка на стороне OrcaRouter |
502 | Upstream error | Все апстрим-провайдеры завершились ошибкой (включая любую цепочку резервирования) |
503 | Service unavailable | Запрошенная модель временно недоступна на стороне апстрима |
Типы ошибок, которые вы можете увидеть в error.type
error.type | Откуда поступает |
|---|---|
orcarouter_api_error | Сбои на стороне шлюза (аутентификация, квота, лимит, внутренние) |
upstream_error | Апстрим-провайдер вернул ошибку или истёк таймаут |
openai_error | Ошибка OpenAI-совместимого апстрима, переданная как есть |
claude_error | Ошибка апстрима Anthropic, переданная как есть |
gemini_error | Ошибка апстрима Gemini, переданная как есть |
Коды ошибок, которые вы можете увидеть в error.code
Это коды, выдаваемые шлюзом для сбоев, возникающих в OrcaRouter (а не в
апстриме):
error.code | HTTP | Значение |
|---|---|---|
insufficient_user_quota | 403 | Кредит аккаунта исчерпан. Пополните. |
model_not_found | 503 | Эта модель недоступна для вашего аккаунта. |
model_price_error | 400 | Тарификация для этой модели не настроена. Обратитесь в поддержку. |
api_not_implemented | 400 | Эндпоинт или операция не поддерживаются для выбранной модели. |
bad_request_body | 400 | Не удалось разобрать тело запроса. |
prompt_blocked | 400 | Политика безопасности провайдера заблокировала промпт до генерации. |
sensitive_words_detected | 400 | Фильтр чувствительного контента отклонил промпт. |
error.code
(специфично), а затем — по error.type (широкая категория).
Ошибки при стриминге
Ошибки во время потокового ответа не могут использовать коды HTTP-статуса (статус был отправлен при открытии потока). Формат зависит от эндпоинта:/v1/chat/completions и /v1/responses (OpenAI-совместимые)
Ошибка приходит как in-band фрагмент data: {...}:
data: как JSON; если в нём есть поле error,
считайте поток неудачным.
/v1/messages (Anthropic-совместимый)
Anthropic использует именованные SSE-события. Сбой потока приходит как:
event: message_stop (или обрывается) после
события ошибки.
Ошибки резервирования
Когда установленextra_body.models и все модели в цепочке завершаются
ошибкой, вы получаете 502 с подробностями о последней ошибке апстрима.
Заголовки ответа X-Orca-Fallback-Level и X-Orca-Fallback-Model указывают,
какая резервная модель пробовалась, когда цепочка была исчерпана. См.
Заголовки ответа.