API 文档 · 排错手册

AI API 错误码速查手册

按 HTTP 状态码分层,对照 OpenAI、Claude、Gemini、DeepSeek 与中转站/网关的常见原因与修法。原则只有一条:保存 request ID,按错误类型(error.type)分支,而不是按错误文案——文案会变,类型稳定。

核验于 2026-09-04。具体行为随各家官方 API 版本变化,接入前请以官方文档与你的控制台为准。

通用 HTTP 状态码分层

四家 API 大体遵循同一套 HTTP 语义,先建立这张总表,再看各家差异。

状态码含义是否重试第一步排查
400请求体格式错误、参数非法核对 JSON 结构与必填字段(如 Claude 的 max_tokens)
401鉴权失败:Key 错/缺失/撤销检查鉴权头与 Key 状态,别循环重试
403无权限:地区限制、模型未授权确认账号/Key 是否有该模型权限、是否受地区限制
404路径或模型 ID 不存在核对 Base URL 是否多/少 /v1,model 名是否拼错
422参数语义不合法(值超范围等)检查取值范围(temperature、max_tokens 上限等)
429限速或额度/余额不足看情况区分限速与欠费:限速退避重试,欠费先充值
500服务端内部错误是(有限)带抖动重试,保存 request ID 反馈
502/503/504网关/上游不可达、过载、超时是(有限)指数退避+熔断,检查是否上游故障
529上游过载(Claude 常见)是(有限)带抖动限次重试

OpenAI / OpenAI 兼容

状态码 · error.type常见原因修法
401 · invalid_api_keyKey 错误、缺少 Authorization: Bearer确认头为 Authorization: Bearer sk-...,核对 Key
404 · model_not_found模型名拼错或账号无权限用 /v1/models 列出可用模型,核对拼写
400 · context_length_exceeded输入+输出超模型上下文压缩输入或分段;降低 max_tokens
429 · rate_limit_exceededRPM/TPM 超限指数退避+抖动,检查并发;读取 retry-after 头
429 · insufficient_quota额度用尽/欠费重试无意义,充值或换项目 Key
400 · invalid_request_error参数结构错、JSON mode 冲突核对 messages 结构与 response_format

迁移到 OpenAI 兼容接口的完整流程(契约冻结、影子验证、灰度回滚)见 OpenAI 兼容 API 迁移;接入基础见 OpenAI API 接入教程

Claude(Anthropic Messages)

状态码 · type常见原因修法
401 · authentication_error用了 Bearer 而非 x-api-key;Key 无效改用 x-api-key + anthropic-version
400 · invalid_request_error缺 max_tokens(Claude 必填)、消息结构错补齐 max_tokens 与 messages 结构
404Base URL 多带了 /v1(原生 SDK)原生 SDK 的 base_url 用主机根,不带 /v1
429 · rate_limit_error速率或额度限制区分限速/欠费,限速带退避重试
529 · overloaded_error上游过载带抖动限次重试
工具调用失败tool_use ID/参数/内容块顺序不匹配检查 tool_use→tool_result 回传与 stop_reason=tool_use

Claude 接入与鉴权、流式细节见 Claude 中转接入教程

Gemini

状态码 · status常见原因修法
400 · INVALID_ARGUMENT请求体字段错、模型名格式错核对 model 路径(models/gemini-...)与字段
403 · PERMISSION_DENIEDAPI Key 无权限、地区限制确认 Key 权限与可用地区
404 · NOT_FOUND模型 ID 不存在核对当前可用模型 ID
429 · RESOURCE_EXHAUSTED配额用尽或限速退避重试或提高配额
500 · INTERNAL服务端错误带抖动有限重试

Gemini 原生接口与 OpenAI 兼容层的双协议接入见 Gemini API 中转接入

DeepSeek

状态码常见原因修法
401Key 无效核对 Key 与 Authorization 头
402余额不足充值后重试(重试本身无意义)
422参数非法检查参数取值范围与类型
429请求过快降并发、指数退避
Base URL 混淆Endpoint 与 Base URL 写混区分主机根与完整 endpoint

DeepSeek 的 Base URL、模型与流式验证见 DeepSeek API 中转站接入

中转站 / 网关特有情况

通过中转站或多模型网关时,错误可能来自网关本身,也可能是网关透传的上游错误。排查要先分清来源。

现象可能原因排查
502 / 503 / 504网关到上游不可达/过载/超时看是否上游故障;带熔断的有限重试
curl 成功、SDK 失败Base URL 的 /v1 语义、SDK 默认路径差异对齐 SDK base_url 与 curl 的完整路径
模型"支持"但工具调用失败网关只实现了文本 Messages单独测工具协议,别用普通对话成功推断
用量对不上账网关计量口径与上游不一致保存网关与上游双 request ID 对账

中转站错误码的分层处理与脱敏诊断包见 API 中转站错误码排查;如何判断上游路由是否透明见 上游渠道核验。接入配置从 API 文档 开始。

常见问题

AI API 返回 401 应该怎么排查?

401 是鉴权失败。依次检查 Key 是否正确、是否被撤销或过期、鉴权头是否用对(OpenAI 用 Authorization: Bearer,Claude 用 x-api-key),以及请求主机是否正确。保存 request ID 后修复凭据再试,不要循环重试。

429 一定是被限速吗?

不一定。429 可能是速率限制(RPM/TPM)也可能是额度或余额不足。看响应体错误类型区分:限速可带指数退避有限重试,欠费重试无意义,应先充值或换 Key。

HTTP 200 之后还会出错吗?

会。流式响应在 HTTP 200 建立连接后,仍可能在 SSE 事件流中出现 error 事件或提前中断。必须消费完整事件链并等待结束事件(OpenAI 的 [DONE]、Claude 的 message_stop),再检查 finish_reason/stop_reason 与 usage。

通过中转站或网关时错误码有什么不同?

网关可能返回自身错误(502/503/504 表示上游不可达或超时),也可能透传上游错误。排查时区分错误来自网关还是上游,并保存网关与上游双 request ID 以便对账。

核验日期:本手册于 2026-09-04 复核。各家 API 的错误类型与行为会随版本调整,生产接入前请以官方文档与控制台实时信息为准。

不熟悉文中的概念?配合 AI API 术语表 一起看。