错误码
wrouter 错误响应统一为:
json
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"code": "invalid_api_key",
"param": null
}
}HTTP 状态码与 OpenAI 一致。
HTTP 状态码
| 状态 | 含义 | 典型场景 |
|---|---|---|
400 | 请求错误 | 缺参、参数格式错、模型不支持的字段 |
401 | 未认证 | 缺失 / 错误 / 已禁用的 Token |
403 | 已认证但禁止 | IP 不在白名单、Token 无权调用该模型 |
404 | 资源不存在 | 模型 ID 错误、文件 ID 不存在 |
409 | 冲突 | 同名资源已存在 |
413 | 请求体过大 | 文件、prompt、batch 超限 |
422 | 语义错误 | JSON Schema 校验未通过 |
429 | 限流 / 配额不足 | RPM 超限、Token 额度不足、账户余额不足 |
499 | 客户端中断 | 客户端取消了请求 |
500 | 内部错误 | wrouter 自身故障,可重试 |
502 / 503 / 504 | 上游异常 | 上游模型不可用 / 超时,建议重试或换模型 |
错误码(error.code)
| code | 含义 |
|---|---|
invalid_api_key | Token 无效 |
expired_api_key | Token 已过期 |
disabled_api_key | Token 已禁用 |
ip_not_allowed | IP 不在白名单 |
model_not_found | 模型 ID 不存在 |
model_not_authorized | 该 Token / 分组无权调用此模型 |
insufficient_quota | Token 配额耗尽 |
insufficient_balance | 账户余额不足 |
rate_limit_exceeded | 触发限流 |
content_policy_violation | 违反内容安全策略 |
context_length_exceeded | 输入超出模型上下文窗口 |
upstream_error | 上游返回错误(详见 message) |
upstream_timeout | 上游超时 |
internal_error | wrouter 内部错误 |
重试建议
| 错误 | 是否可重试 | 备注 |
|---|---|---|
429 | ✓ | 指数退避,初始 1s,最长 60s |
500 / 502 / 503 / 504 | ✓ | 同上 |
upstream_timeout | ✓ | 减小 max_tokens 或换模型 |
4xx 其他 | ✗ | 修复请求再调用 |
OpenAI SDK 与 Anthropic SDK 默认带有重试逻辑,可直接复用。
调试
控制台 → 调用日志 → 点击单条记录 可查看:
- 请求 / 响应体(脱敏后)
- 上游 endpoint、延迟、状态码
- 实际扣费明细
- 完整 trace ID
将 trace ID 一并提交给客服可极大加速问题定位。