API 错误码参考
本文档描述 AGIPower 平台接口所有可能返回的错误响应,包括错误原因及排查解决方案。错误响应格式
所有错误均遵循统一的 JSON 结构:错误速查表
详细错误说明
认证与授权错误
HTTP 403 — access_denied
- 检查是否通过
Authorization: Bearer <key>、x-api-key或x-goog-api-key头部正确传递了 API Key。 - 登录 AGIPower 控制台 确认 API Key 未被撤销或过期。
- 确认复制 API Key 时没有多余的空格或换行符。
HTTP 403 — safety_check_failed
表示输入内容被上游安全策略拦截。
排查步骤:
- 调整提示词、图片、文件或工具输入内容
- 减少可能触发安全规则的描述
- 必要时切换模型
参数校验错误
HTTP 400 — invalid_params
当请求参数未通过校验时返回。具体场景如下:
HTTP 413 — invalid_params(提示词过长)
- 减少
messages数组中消息的数量或长度。 - 考虑使用支持更大上下文窗口的模型。
- 对较早的对话轮次进行摘要,而不是包含完整历史。
HTTP 422 — provider_unprocessable_entity_error
原因: 请求在平台侧通过,但上游模型服务商无法处理该请求,通常是上游模型服务商对字段结构、工具、格式化输出或多模态输入有更严格要求。
排查步骤:
- 查看响应中
message字段的具体描述。 - 检查所有参数是否与所选模型兼容。
- 移除可选/高级参数后用最小请求重试。
计费与订阅错误
HTTP 402 — insufficient_credit(账户欠费)
- 前往 AGIPower 计费页面 充值。
HTTP 402 — reject_no_credit(余额不足)
- 充值账户余额。
- 切换到允许低余额访问的模型或套餐
HTTP 402 — quote_exceeded(订阅配额用尽)
- 等待刷新 — 配额会在滚动时间窗口内自动恢复。
- 升级计划 — 切换到更高级别的订阅以获得更大配额。
- 按量付费 — 创建 Pay-As-You-Go API Key,享受无限量使用(按 Token 计费)。
模型可用性错误
HTTP 404 — model_not_available(模型不在订阅计划中)
- 查阅订阅指南确认当前计划支持的模型列表。
- 升级订阅计划以包含目标模型。
- 使用 Pay-As-You-Go API Key 访问计划外的模型。
HTTP 404 — invalid_model(模型不存在)
原因: 指定的模型标识与所有已知模型均不匹配。
排查步骤:
- 检查模型名称是否有拼写错误。
- 参考模型列表获取有效的模型标识。
HTTP 404 — model_not_supported(模型不支持该 API)
原因: 模型存在但不支持当前调用的接口。
排查步骤:
- 查看模型详情页面确认其支持的 API 接口。
- 切换到支持当前接口的模型。
限流错误
HTTP 429 — rate_limit
- 降低请求频率 — 在请求之间添加延迟或使用指数退避策略。
- 分散高峰调用
服务端与上游错误
HTTP 500 — internal_server_error(平台内部错误)
原因: 服务器发生意外错误,可能由以下情况导致:
- 平台的瞬时故障。
- 上游错误被平台统一收敛为内部错误。
- 退避重试 — 大多数 500 错误是瞬时的,使用指数退避重试即可。
- 持续复现时提供响应头中的
X-AGIPower-RequestId联系支持。
HTTP 500 — provider_error、provider_api_error
原因: 表示请求已经到达上游,大概率是上游供应商出现了问题。
排查步骤:
- 退避重试
- 持续复现时提供响应头中的
X-AGIPower-RequestId联系支持。
HTTP 502 — no_provider_available — 上游服务商不可用
原因: 当前没有可用的上游服务商处理请求,可能由以下情况导致:
- 参数所指定的供应商不存在。
- 该模型所有配置的上游服务商均出现故障。
- 多次重试后所有服务商均失败。
- 放宽或取消指定供应商的规则。
- 短暂等待后重试。
流式请求特殊情况
使用stream: true 时,错误的表现形式可能有所不同:
流中错误
如果在流式传输开始后发生错误,不会统一回退成标准 JSON 错误体返回,流将终止或流内补发失败事件。 客户端在流式场景下应同时具备:- HTTP 状态码判断
- 事件流完整性判断
- 业务结束标志判断
- 流中错误事件解析能力
SSE 保活注释
在长时间运行的请求中,您可能会收到如下 SSE 注释:: 开头的行。
流中断
如果客户端主动断开连接(如取消请求),服务端将清理进行中的流并释放资源。客户端主动中断不会产生错误响应。错误处理最佳实践
- 始终根据
type字段进行程序化处理 —type用于代码逻辑判断,message仅用于展示。 - 对可重试错误实现重试逻辑:
- 保存响应头中的
X-AGIPower-RequestId— 联系技术支持时附上此 ID 可加速问题定位。 - 妥善处理流式响应 — 使用
stream: true时,始终处理不完整响应和连接中断的情况。 - 使用指数退避重试 — 重试时逐步增加间隔(如 1s → 2s → 4s → 8s),并加入随机抖动以避免”惊群效应”。
常见问题
Q:账户明明有余额,为什么还会收到 402 错误? A:请区分 API Key 类型。订阅类 API Key 有独立的配额限制,与账户余额是两套机制。订阅配额耗尽时即使余额充足也会返回 402(quote_exceeded)。建议检查:
- 当前订阅计划的配额使用情况
- 是否使用了正确类型的 API Key
model_not_available。解决方案:
- 查阅订阅计划的模型清单
- 升级到包含目标模型的计划
- 使用 Pay-As-You-Go API Key 按量访问
- 实现自动重试机制(带指数退避)
- 如果错误率持续偏高,请联系技术支持
X-AGIPower-RequestId 提供给技术支持团队。
Q:流式请求中途收到 AGIPower PROCESSING 是什么意思?
A:这是 SSE 保活注释(以 : 开头),每 10 秒发送一次,表示请求仍在处理中。这不是错误,您的 SSE 客户端应按规范自动忽略注释行。