Qoder Cloud Agents API 的统一错误信封格式、错误类型与排查实践。
401 认证错误与其他 HTTP 错误码使用不同的响应结构,确认的格式请参见本页「401 — 认证错误(Authentication Error)」小节。
其他错误码(400、403、404、409、500)是否同样使用
请求格式或参数不合法。
常见触发场景:
身份认证失败。
常见触发场景:
认证通过但权限不足。
常见触发场景:
目标资源不存在。
常见触发场景:
资源状态冲突,操作无法执行。
常见触发场景:
服务端内部错误。
常见触发场景:
遇到 500 错误时,建议使用指数退避策略重试(等待 1s → 2s → 4s)。
错误信封格式
401 认证错误与其他 HTTP 错误码使用不同的响应结构,确认的格式请参见本页「401 — 认证错误(Authentication Error)」小节。
其他错误码(400、403、404、409、500)是否同样使用 {"code":"...","message":"...","timestamp":"..."} 结构尚未确认,以下信封格式定义适用于上述错误码(待验证)。
其他错误码的错误响应遵循以下 JSON 结构:
字段说明
| 字段 | 类型 | 必有 | 说明 |
|---|---|---|---|
code | string | 是 | 错误类型标识(如 TOKEN_INVALID) |
message | string | 是 | 人类可读的错误描述 |
timestamp | string | 是 | 服务器处理请求的 Unix 毫秒时间戳 |
错误类型一览
| HTTP 状态码 | code | 说明 |
|---|---|---|
| 400 | invalid_request_error | 请求参数无效或缺失 |
| 401 | TOKEN_INVALID | 认证失败,令牌无效或过期 |
| 403 | permission_error | 认证成功但无权操作目标资源 |
| 404 | not_found_error | 目标资源不存在 |
| 409 | conflict_error | 资源状态冲突(如重复创建) |
| 500 | api_error | 服务端内部错误 |
各错误类型详解
400 — invalid_request_error
请求格式或参数不合法。
常见触发场景:
- 缺少必需字段(如
name) - 字段值类型错误(如
string传了number) - 请求体超过 4MB 大小限制
- JSON 格式错误
401 — TOKEN_INVALID
身份认证失败。
常见触发场景:
- 未提供
Authorization头 - PAT 格式错误
- PAT 已过期或被撤销
- 使用了
x-api-key而非 Bearer Token
403 — permission_error
认证通过但权限不足。
常见触发场景:
- PAT 无权访问目标 Agent(属于其他用户/组织)
- PAT 权限范围不覆盖当前操作
- 尝试操作已归档且锁定的资源
404 — not_found_error
目标资源不存在。
常见触发场景:
- Agent/Session/Environment ID 不存在
- 资源已被删除
- URL 路径拼写错误
409 — conflict_error
资源状态冲突,操作无法执行。
常见触发场景:
- 使用相同幂等键但不同请求体重复请求
- 在已终止的 Session 上继续操作
- 重复创建同名唯一资源
500 — api_error
服务端内部错误。
常见触发场景:
- 服务暂时不可用
- 内部组件异常
- 数据库连接超时
错误处理最佳实践
- 解析
code字段用于程序化判断,而非 HTTP 状态码 - 记录
message用于日志排查 - 4xx 错误不要重试(除非修改了请求参数)
- 5xx 错误使用退避重试(最多 3 次)