跳转到主要内容

错误信封

绝大多数错误响应使用这一 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 指出链耗尽时正在尝试哪个回退。详见 响应头