跳轉到主要內容

錯誤信封

絕大多數錯誤響應使用這一 OpenAI 兼容的 JSON 形態:
{
  "error": {
    "message": "Descriptive error message",
    "type": "orcarouter_api_error",
    "code": "model_not_found"
  }
}
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_errorOpenAI 兼容上游錯誤原樣保留
claude_errorAnthropic 上游錯誤原樣保留
gemini_errorGemini 上游錯誤原樣保留

error.code 中可能出現的代碼

這些是網關簽發的代碼(錯誤來自 OrcaRouter,而非上游):
error.codeHTTP含義
insufficient_user_quota403賬戶余額耗盡,請充值。
model_not_found503該模型在你賬戶上不可用。
model_price_error400該模型未配置定價,請聯系支持。
api_not_implemented400當前模型不支持該端點或操作。
bad_request_body400請求體無法解析。
prompt_blocked400服務商安全策略在生成前阻斷了 prompt。
sensitive_words_detected400敏感內容過濾器拒絕了 prompt。
如果你需要按代碼分支處理,優先匹配 error.code(具體),再回退到 error.type(廣義)。

流式過程中的錯誤

流式響應中的錯誤無法用 HTTP 狀態碼(狀態碼在流打開時就已發出)。 具體形態因端點而異:

/v1/chat/completions/v1/responses(OpenAI 兼容)

錯誤以帶內的 data: {...} 分片到達:
data: {"error":{"message":"...","type":"upstream_error","code":""}}

data: [DONE]
把每一塊 data: 都當 JSON 解析;若它含 error 字段,就視該流為失敗。

/v1/messages(Anthropic 兼容)

Anthropic 使用 SSE 命名事件。流中失敗到達形式為:
event: error
data: {"type":"error","error":{"type":"overloaded_error","message":"..."}}
流在錯誤事件之后以 event: message_stop 結束(或被切斷)。

回退錯誤

extra_body.models 被設置且鏈中所有模型都失敗時,你會得到一個 502,里面帶有最后一次上游錯誤的細節。響應頭 X-Orca-Fallback-LevelX-Orca-Fallback-Model 指出鏈耗盡時正在嘗試哪個回退。詳見 響應頭