錯誤信封
絕大多數錯誤響應使用這一 OpenAI 兼容的 JSON 形態:type 是一個廣義類別,code 是具體標識。某些快路徑失敗(尤其是
工作區級別的 429)只返回 HTTP 狀態碼和相關響應頭,沒有 JSON body。
HTTP 狀態碼
| 狀態 | 含義 | 典型原因 |
|---|---|---|
400 | 請求錯 | 參數無效、缺必填字段、schema 違規 |
401 | 未授權 | API 密鑰缺失或無效 |
403 | 禁止 | 額度不足,或密鑰無權調用該模型 |
404 | 未找到 | 模型或端點不存在 |
429 | 請求過多 | 命中限流——詳見速率限制。響應總是帶 Retry-After 頭。 |
500 | 內部錯誤 | OrcaRouter 側 bug |
502 | 上游錯誤 | 所有上游服務商都失敗了(包括任何回退鏈) |
503 | 服務不可用 | 所請求模型暫時在上游不可用 |
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 | 服務商安全策略在生成前阻斷了 prompt。 |
sensitive_words_detected | 400 | 敏感內容過濾器拒絕了 prompt。 |
error.code(具體),再回退到
error.type(廣義)。
流式過程中的錯誤
流式響應中的錯誤無法用 HTTP 狀態碼(狀態碼在流打開時就已發出)。 具體形態因端點而異:/v1/chat/completions 與 /v1/responses(OpenAI 兼容)
錯誤以帶內的 data: {...} 分片到達:
data: 都當 JSON 解析;若它含 error 字段,就視該流為失敗。
/v1/messages(Anthropic 兼容)
Anthropic 使用 SSE 命名事件。流中失敗到達形式為:
event: message_stop 結束(或被切斷)。
回退錯誤
當extra_body.models 被設置且鏈中所有模型都失敗時,你會得到一個
502,里面帶有最后一次上游錯誤的細節。響應頭 X-Orca-Fallback-Level
和 X-Orca-Fallback-Model 指出鏈耗盡時正在嘗試哪個回退。詳見
響應頭。