错误码总表

网关全部错误码的完整清单。message 一列是服务端返回的原文, 可以直接拿来做字符串比对;处置建议见 错误处理与重试

🔢
编码规则:HTTP 状态码 + 2 位序号

42905 = 429 + 序号 05。 所以看到码就知道 HTTP 状态。唯一的例外是 41301—— 413 是三位数状态码里的特例,它的完整形态就是 413 + 01

判断是不是网关错误,看 error.type 是否为 "gateway_error"; 不是的话就是上游厂商的原样透传,本表不适用。

400 请求参数

codemessage说明与处置
40000invalid request body请求体不是合法 JSON。检查转义与 Content-Type
40001api_key is required没取到密钥。最常见成因是用了 x-api-key——兼容端点只读 Authorization: Bearer
40002model_id is requiredmodel 缺失。Gemini 端点是路径里没解析出模型名。
40003content is required请求体为空或读取失败。Gemini 端点上也用于「动作不受支持」。
40004protocol is required协议未能判定。走标准端点不会出现。
40005 上下文超过模型限制,请开启新会话或压缩上下文! 已停用(2026-08-24 起不再下发)。此前用于「要求的输出长度含思考预算超过该模型输出上限」, 在入口一次判定、不发上游。现已改为不拦截:请求照常转发,由上游厂商裁定并返回其原始错误。 号段保留不复用,客户端已有的判断分支可以留着,只是不会再命中。
🈶
个别 message 是中文,这是有意的

表里其余条目都是英文技术描述,只有 4000542906 下发中文——因为客户端通常会把 message 原样显示给终端用户看, 这两条是用户自己能处理的情况。 (40005 已于 2026-08-24 停用,现在实际会遇到的只剩 42906。)

401 鉴权

codemessage说明与处置
40100invalid access tokenAccess Token 无效。
40101api key not found密钥不存在。多为复制时漏字符或多了空格/换行。
40102api key disabled密钥被禁用。去控制台启用或换一把。
40103api key expired密钥已过期。过期是不可逆的,只能新建。

403 资格

codemessage说明与处置
40201no active subscription没有生效中的订阅。
40202api billing access not enabled 未订阅且未开「API 扣费访问」。新账号的第一个错误基本都是它。 账号未实名时,中文提示里会追加实名引导。见 计费
40203model access restricted 模型准入不足(认证等级或套餐等级)。实际下发的是中文原因, 见 模型、准入与回退

413 请求体

codemessage说明与处置
41301request body too large 请求体超过 100 MiB。基本只有 base64 图片/文件会触碰。拆小或改用文件引用。

429 限流与额度

codemessage说明与处置
42901concurrency limit exceeded并发超限。是拒绝不是排队,降低客户端并发。
42902rpm limit exceeded 分钟级请求数超限。策略层的请求次数/图片/视频/累计金额也都用这个码, 所以它不一定真的是「每分钟」。以 Retry-After 为准。
42903rph limit exceeded小时级请求数超限(上游链路层)。
42904rpd limit exceeded天级请求数超限(上游链路层)。
42905tpm limit exceededToken 用量超限。请求数没超也可能先撞它——通常是单次请求太长。
42906subscription quota exhausted 订阅/订阅外额度用完。订阅用户收到的是中文文案,会说明维度、档位与恢复秒数。 补额度前重试无意义。
42907points insufficient 积分不足。余额有钱也可能报它——需要开启自动兑换或手动兑换。
42908all upstreams temporarily rate-limited, please retry later 所有可用上游都在限流/失败冷却中。临时态,带 Retry-After,退避后重试即可。

429 响应会附带 Retry-AfterX-RateLimit-* 头, 详见 限流、配额与并发

502 路由与上游

codemessage说明与处置
50201no available upstream for this model 该模型没有可用凭证。客户端侧最常见的成因是模型名写错。 名字没错却持续出现,是平台配置问题,重试无效,请反馈。
50202upstream url not configured配置问题,重试无效。
50203upstream api key not configured配置问题,重试无效。
50204upstream unreachable网络问题,可退避重试 1–2 次
50205proxy connection failed代理连接失败,可退避重试。
50206upstream url invalid配置问题,重试无效。
50207upstream dns resolve failedDNS 抖动,可退避重试。
50208upstream tls handshake failedTLS 握手失败,可退避重试。
50209router not found无可用路由,配置问题。
50230health status unavailable健康状态加载失败。
50233proxy not found凭证指定了代理但代理配置查不到。
50234policy not found or disabled 凭证的限制策略缺失或被禁用。与代理无关——此前这个场景复用 50233, 会把排查引向代理方向,故拆出独立码。
分清 42908 与 50201

42908 = 有上游,但都在冷却,等等就好50201 = 压根没有可用上游,等多久都不会好。 两者的处置完全相反,别混。

504 超时

codemessage说明与处置
50401upstream timeout 上游超时。可退避重试;同时考虑调低 max_tokens, 或改用流式以避免长时间无输出。

500 内部错误

codemessage说明与处置
50001internal error不可预期的内部错误。重试一次;持续出现请带上时间与请求特征反馈。
50002route config load failed路由配置加载失败。

计费资格判定失败时也会返回 500,message 为 计费资格校验暂不可用,请稍后重试——这是刻意的 fail-closed: 判不了就拒,避免产生无法计费的调用。见 计费、积分与订阅

不在本表里的错误

请求成功路由到上游后,厂商返回的错误原样透传——状态码与响应体都是厂商的原始格式, error.type 不会是 "gateway_error"。这类错误请查对应厂商的文档。 好处是你现有的官方 SDK 错误处理代码可以直接复用。