错误码与错误响应

BigModel.io 全部错误码的 HTTP 状态、含义和解决方法,四种错误响应格式,流式过程中的错误,X-Request-ID,以及联系支持时需要提供的信息。

本页目录
  1. 错误格式
  2. Key 校验
  3. Anthropic 格式
  4. OpenAI 格式
  5. 视频格式
  6. Key 与账户错误
  7. 请求与路由错误
  8. 图片、视频与音频错误
  9. 流式过程中的错误
  10. X-Request-ID
  11. 联系支持
  12. 常见问题排查
  13. 相关文档

错误来自两处:路由之前的 Key 校验,以及端点处理逻辑(或其背后的模型供应商)。两者的响应体格式不同,所以先看 HTTP 状态码,再看错误码或类型。

状态码 常见原因 是否重试
400 请求格式错误 否,修正请求
401 Key 缺失、错误或已停用 否
402 视频:余额不足以预扣 充值后
403 余额、过期、IP 规则、分组或权限 否
404 Key 所在分组不提供该端点 否
409 对话历史无法被模型接受;视频幂等冲突 否
413 请求体过大 否
429 触发限制(见 限额与速率) 视错误码而定
502 / 503 上游失败、无可用容量或模型未提供 502、过载:是;模型未提供:否

#错误格式

#Key 校验

Key、账户、余额、额度或套餐问题会在路由前被拦截,所有端点都返回扁平结构:

json
{ "code": "INVALID_API_KEY", "message": "Invalid API key" }

#Anthropic 格式

/v1/messages、/v1/messages/count_tokens、仅 Chat Completions 分组的 404 以及缺少分组的 403 使用 Anthropic 结构:

json
{ "type": "error", "error": { "type": "rate_limit_error", "message": "Too many pending requests, please retry later" } }

#OpenAI 格式

OpenAI 分组上的 /v1/chat/completions 和 /v1/responses 使用 OpenAI 结构:

json
{ "error": { "type": "api_error", "message": "No available accounts: no available accounts supporting model: glm-5.4" } }

Anthropic 分组上的 /v1/responses 返回 {"error": {"code": "...", "message": "..."}}。

#视频格式

/v1/videos 系列端点返回 {"error": {"type": "<code>", "message": "..."}},其中 type 是下文的视频错误码之一。

稳妥的客户端依次读取 code、error.type、error.code,都没有时再按 HTTP 状态码处理。

#Key 与账户错误

以下错误使用扁平格式。

HTTP code 含义 解决方法
400 api_key_in_query_deprecated Key 放在 ?key= 或 ?api_key= 中 改用 Authorization: Bearer 或 x-api-key
401 API_KEY_REQUIRED 请求中没有 Key 添加请求头,确认环境变量已设置
401 INVALID_API_KEY Key 无法识别 从 API Keys 重新复制
401 API_KEY_DISABLED Key 已停用 在 API Keys 中启用
401 USER_NOT_FOUND Key 所属账户不存在 联系 支持
401 USER_INACTIVE 账户未启用 联系支持
403 ACCESS_DENIED 被 Key 的 IP 白名单 / 黑名单拦截 检查 Key 的 IP 规则
403 API_KEY_EXPIRED Key 已过有效期 延长有效期或新建 Key
403 INSUFFICIENT_BALANCE 余额为 0 或已为负 充值
403 SUBSCRIPTION_NOT_FOUND Key 属于套餐分组,但没有有效套餐 购买套餐,或改用按余额计费的分组
403 SUBSCRIPTION_INVALID 套餐对本次请求无效 在控制台检查套餐
429 API_KEY_QUOTA_EXHAUSTED Key 的美元额度已用完 提高或重置额度
429 USAGE_LIMIT_EXCEEDED 套餐每日、每周或每月限额已用完 等待下一个周期

#请求与路由错误

以下错误使用对应端点的 Anthropic 或 OpenAI 格式,表中为 error.type 的值。

HTTP error.type 典型信息 解决方法
400 invalid_request_error JSON 无效、请求体为空、“model is required”、stream 类型错误 修正请求体
400 invalid_request_error HTTP 方式不支持 previous_response_id 每轮发送完整 input(或使用 WebSocket)
402 spend_cap_reached “weekly spend cap reached” / “monthly spend cap reached”;Retry-After 指向重置时间 等待重置,或在余额与账单调整上限
403 billing_error “insufficient balance: top up to use this model, or call a free model …” 充值,或调用标价 $0 的模型
403 permission_error “API Key is not assigned to any group” 给 Key 分配分组
403 permission_error “This group does not allow /v1/messages dispatch” 改用 Chat Completions 或其他分组
403 content_policy_violation 请求被内容审核拦截 修改输入
404 not_found_error “<Name> platform only supports /v1/chat/completions; /v1/messages is not available” 改用 /v1/chat/completions,或换用提供该端点的分组的 Key
409 malformed_session_state 历史中的思考块或工具调用 ID 无效 原样回传历史,或删除出错的轮次
413 请求体过大(上限 256 MiB) 减小输入
429 rate_limit_exceeded RPM 限制,带 Retry-After 等待 Retry-After 秒
429 rate_limit_exceeded “free-model rate limit reached”(余额为 0);带 Retry-After 等待,或充值解除限制
429 rate_limit_exceeded “api key 5小时限额已用完”/“日限额”/“7天限额” 等待窗口重置或提高上限
429 rate_limit_error “Too many pending requests”/“Concurrency limit exceeded for user” 减少并行请求,退避重试
429 rate_limit_error 供应商限流 退避重试
502 upstream_error “Upstream request failed” 退避重试
503 api_error “No available accounts: no available accounts supporting model: X” 模型 ID 错误或不在 Key 的分组中,从 /models 复制
503 api_error “No available channels”/“Request pricing is not available” 模型暂不可售,换模型或稍后再试
503 billing_service_error 计费检查失败 稍后重试
503 overloaded_error 供应商过载 退避重试

文本模型没有 404“model not found”:未知或分组未提供的模型返回上面的 503 No available accounts。可以用 GET /v1/models 核对。

#图片、视频与音频错误

HTTP error.type 含义 解决方法
400 invalid_request_error 参数错误,或输入文件读不到 对照模型页检查请求体;输入用公开 URL 或 data URI,单个不超过 50 MB
402 insufficient_balance 余额不足以覆盖本次估价加上未完成的任务 充值
403 permission_error 套餐 Key 不能调用多模态模型 改用按量付费的 Key
404 model_not_available 该 Key 或该接口不提供这个模型 从 GET /v1/models 选择模型
404 not_found_error 账户下找不到这个任务 ID 检查 ID
429 rate_limit_error 未完成的任务或工作流太多 等部分完成后再提交
503 api_error 生成服务暂时不可用 稍后重试

见 多模态任务 API 参考。

#流式过程中的错误

流开始后 HTTP 状态已经是 200,因此错误以 SSE 事件的形式发送,随后关闭流:

text
event: error
data: {"error":{"type":"upstream_error","message":"Upstream request failed"}}

以上是 OpenAI 协议的形式。在 /v1/messages 上,错误是一行 Anthropic 结构的 data::data: {"type":"error","error":{"type":"...","message":"..."}}。收到 error 事件应视为请求失败:不要把已收到的部分输出当成完整结果,类型可重试时再重试。见 流式输出。

#X-Request-ID

每个响应都带有 X-Request-ID 响应头。如果你自己发送了 X-Request-ID,会原样返回,方便关联日志。部分模型的响应中,它会是模型供应商的请求 ID。由于 CORS 未暴露该响应头,浏览器读不到它;请从服务端调用 API。

bash
curl -sD - -o /dev/null https://bigmodel.io/v1/models \
  -H "Authorization: Bearer $BIGMODEL_API_KEY" | grep -i x-request-id

#联系支持

打开 支持(或发邮件到 support@bigmodel.io),并附上:

  • X-Request-ID 和请求时间(含时区)
  • 端点和模型 ID
  • HTTP 状态码和完整错误响应体
  • 是否为流式请求
  • 使用的 SDK 或工具及版本

请先移除 API Key、Authorization 请求头和敏感的提示内容。失败请求的请求体会在去除凭据后保留最多 30 天,因此近期的请求 ID 可以追查;见 数据与隐私。

#常见问题排查

所有请求都返回 503 No available accounts。 模型 ID 拼错(注意大小写和点号:deepseek-v4-pro,不是 DeepSeek-V4-Pro),或模型属于其他分组。

刚创建 Key 就返回 401。 环境变量或工具设置里还是旧 Key。打印前几位和控制台对比。

Agent 中出现 409 malformed_session_state。 客户端修改或重排了历史中的思考块或工具块。新开会话,或关闭会改写这些块的历史压缩功能。

#相关文档

更新于 · 以 Markdown 查看