主题
错误码
本页列出 Zivv API 返回的真实错误码与排查方法。遇到报错时,先看响应里的 HTTP 状态码和 error.message,再对照下表定位。
错误响应格式
不同协议格式返回的错误 JSON 结构不同,但都包含 message(错误描述)。
json
{
"error": {
"message": "model is required",
"type": "invalid_request_error",
"param": null,
"code": null
}
}json
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "model is required"
}
}json
{
"error": {
"code": 400,
"message": "model is required",
"status": "INVALID_ARGUMENT"
}
}状态码总览
| 状态码 | type | 含义 |
|---|---|---|
400 | invalid_request_error | 请求格式错误、缺少参数,或该模型当前无可用渠道 |
401 | authentication_error | API Key 缺失或无效 |
402 | insufficient_balance | 余额不足,或用户/Key 配额已用尽 |
403 | permission_error | 模型被禁用、不在 Key 白名单内,或客户端类型不匹配 |
404 | not_found_error | 端点或模型不存在 |
405 | api_error | HTTP 方法不支持(接口只接受 POST) |
429 | rate_limit_error | 触发限流,或团队预算已用尽 |
500 | api_error | 服务内部错误 |
502 | api_error | 上游响应异常 |
503 | api_error | 服务暂时不可用 |
529 | overloaded_error | 上游过载 |
错误信息已脱敏
当上游模型服务报错时,Zivv 不会透传上游的原始错误,而是统一包装成通用文案(如 service unavailable, please retry later)。所以你看到的 message 是 Zivv 的标准提示,不是上游原文。
常见错误及排查
401 · missing api key / invalid api key
原因: 没带 API Key,或 Key 无效、已过期、已禁用。
排查:
- 确认 API Key 以
sk-开头,前后无空格或换行 - 确认请求头格式:
- OpenAI:
Authorization: Bearer sk-xxx - Anthropic:
x-api-key: sk-xxx - Gemini:
x-goog-api-key: sk-xxx
- OpenAI:
- 登录 令牌管理 确认 Key 仍有效
402 · insufficient balance
原因: 账户余额低于最低额度(0.01)。
排查: 前往 订阅页面 充值,充值后立即恢复。
402 · quota limit exceeded / key quota limit exceeded
原因: 触发了消费上限——前者是用户总额度用尽,后者是这个 API Key 单独设的额度用尽。
排查: 在 令牌管理 查看 Key 的额度设置,或在控制台查看账户配额。额度是累计消费限制,不会自动重置。
403 · model 'xxx' is not allowed for this API key
原因: 这个 API Key 设了模型白名单,请求的模型不在其中。
排查: 在 令牌管理 检查该 Key 的「可用模型」设置,把目标模型加进去,或换一个不限模型的 Key。
403 · model 'xxx' is not available
原因: 该模型在平台被禁用或已下架。
排查: 在 模型广场 确认模型 ID 拼写正确且仍在售,换用其他可用模型。
403 · this channel requires a specific client...
原因: 你用的分组下,渠道限定了客户端类型(按 User-Agent 过滤,例如只允许 Claude Code),当前客户端不匹配。
排查: 换用该分组要求的客户端,或换一个不限客户端的分组。不确定时附上你的客户端名称反馈给管理员。
400 · model is required
原因: 请求体里没有 model 字段。
排查: 确认客户端配置了模型 ID,请求体包含 "model": "xxx"。
400 · invalid request body
原因: 请求体不是合法 JSON。
排查:
- 用 JSON 校验工具检查请求体(多余逗号、引号未闭合等)
- Codex 若出现压缩请求解析错误,先检查旧代理链;Zivv 当前已支持压缩,必要时按 Codex 配置指南 临时关闭请求压缩
- Anthropic 格式需包含
max_tokens
400 · model 'xxx' is not available, please use a different model
原因: 该模型当前没有任何可用渠道(与 403 的「被禁用」不同,这里是路由层找不到能服务的渠道)。
排查: 稍后重试;持续出现则换用其他模型,或反馈给管理员。
429 · rate limit exceeded
原因: 请求频率超过 Key 的 RPM/RPH 限制。
处理:
- 看响应头
Retry-After,等待指定秒数后重试 - 降低并发和请求频率
- 代码里实现指数退避
python
import time
import requests
def request_with_retry(url, headers, data, max_retries=3):
for i in range(max_retries):
resp = requests.post(url, headers=headers, json=data)
if resp.status_code == 429:
retry_after = int(resp.headers.get('Retry-After', 5))
time.sleep(retry_after)
continue
return resp
raise Exception("Max retries exceeded")429 · quota exhausted, please retry later
原因: 目标分组下所有渠道都在限流。
处理: 等待 1-2 分钟后重试,或换用其他分组/模型。
429 · team daily/monthly/total budget exceeded / member budget exceeded
原因: 团队预算(日 / 月 / 总)或成员子预算已用尽。
处理: 联系团队管理员调整预算,或等待预算周期重置。
529 · service overloaded, please retry later
原因: 上游模型服务过载。
处理: 等待片刻后重试,或换用其他模型。
503 · service temporarily unavailable, please try again later
原因: 目标分组下渠道因混合原因(限流 + 过载 + 其他)全部失败。
处理: 等待 1-2 分钟后重试;持续出现请反馈给管理员,并附上反馈格式所需信息。
连接失败 / Connection Refused
排查:
- 确认 Base URL 用
https://(不是http://) - 确认 Base URL 是否带
/v1后缀(见 FAQ) - 检查网络连接
- 确认服务在线:
curl https://zivv.pro/health
还是解决不了?
按 问题反馈格式 整理信息再反馈,能大幅加快排查。最关键的是:模型 ID、分组、客户端、协议格式、完整报错。
