跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.qoder.com/llms.txt

Use this file to discover all available pages before exploring further.

Qoder Cloud Agents API 使用统一的错误信封格式返回所有错误。每个错误响应包含结构化信息,便于程序化处理和问题排查。

错误信封格式

所有错误响应遵循以下 JSON 结构:
{
  "type": "error",
  "error": {
    "type": "<error_type>",
    "message": "<人类可读的错误描述>",
    "param": "<触发错误的参数名(可选)>",
    "feature": "<所需功能标识(仅 501 错误)>",
    "available_from": "<功能可用的 Beta 标识(仅 501 错误)>"
  }
}

字段说明

字段类型必有说明
typestring固定为 "error"
error.typestring错误类型标识
error.messagestring人类可读的错误描述
error.paramstring触发错误的请求参数名
error.featurestring需要激活的功能(501 专用)
error.available_fromstring功能对应的 Beta 标识(501 专用)

错误类型一览

HTTP 状态码error.type说明
400invalid_request_error请求参数无效或缺失
401authentication_error认证失败,令牌无效或缺失
403permission_error认证成功但无权操作目标资源
404not_found_error目标资源不存在
409conflict_error资源状态冲突(如重复创建)
500api_error服务端内部错误
501feature_not_available功能未启用,需 Beta 头激活

各错误类型详解

400 — invalid_request_error

请求格式或参数不合法。 常见触发场景:
  • 缺少必需字段(如 name
  • 字段值类型错误(如 string 传了 number
  • 请求体超过 32MB 大小限制
  • JSON 格式错误
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "Missing required field: name",
    "param": "name"
  }
}
# 触发示例:缺少 name 字段
curl -X POST "https://openapi.qoder.sh/api/v1/cloud/agents" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{}'

401 — authentication_error

身份认证失败。 常见触发场景:
  • 未提供 Authorization
  • PAT 格式错误
  • PAT 已过期或被撤销
  • 使用了 x-api-key 而非 Bearer Token
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key or token."
  }
}
# 触发示例:使用无效令牌
curl -s "https://openapi.qoder.sh/api/v1/cloud/agents" \
  -H "Authorization: Bearer pt-invalid-token"

403 — permission_error

认证通过但权限不足。 常见触发场景:
  • PAT 无权访问目标 Agent(属于其他用户/组织)
  • PAT 权限范围不覆盖当前操作
  • 尝试操作已归档且锁定的资源
{
  "type": "error",
  "error": {
    "type": "permission_error",
    "message": "You do not have permission to access this agent."
  }
}
# 触发示例:访问他人的 Agent
curl -s "https://openapi.qoder.sh/api/v1/cloud/agents/agent_other_user_123" \
  -H "Authorization: Bearer $QODER_PAT"

404 — not_found_error

目标资源不存在。 常见触发场景:
  • Agent/Session/Environment ID 不存在
  • 资源已被删除
  • URL 路径拼写错误
{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "Agent not found: agent_nonexistent_123"
  }
}
# 触发示例:查询不存在的 Agent
curl -s "https://openapi.qoder.sh/api/v1/cloud/agents/agent_nonexistent_123" \
  -H "Authorization: Bearer $QODER_PAT"

409 — conflict_error

资源状态冲突,操作无法执行。 常见触发场景:
  • 使用相同幂等键但不同请求体重复请求
  • 在已终止的 Session 上继续操作
  • 重复创建同名唯一资源
{
  "type": "error",
  "error": {
    "type": "conflict_error",
    "message": "A request with this idempotency key has already been processed with different parameters."
  }
}

500 — api_error

服务端内部错误。 常见触发场景:
  • 服务暂时不可用
  • 内部组件异常
  • 数据库连接超时
{
  "type": "error",
  "error": {
    "type": "api_error",
    "message": "An internal error occurred. Please try again later."
  }
}
遇到 500 错误时,建议使用指数退避策略重试(等待 1s → 2s → 4s)。

501 — feature_not_available

请求的功能尚未激活,需要通过 Beta 头 启用。 常见触发场景:
  • Beta 头中缺少对应功能标识
  • 使用了过期的 Beta 标识
{
  "type": "error",
  "error": {
    "type": "feature_not_available",
    "feature": "managed-agents",
    "available_from": "managed-agents-2026-04-01"
  }
}
# 触发示例:缺少 beta 头
curl -s "https://openapi.qoder.sh/api/v1/cloud/agents" \
  -H "Authorization: Bearer $QODER_PAT"

错误处理最佳实践

  1. 解析 error.type 用于程序化判断,而非 HTTP 状态码
  2. 记录 error.message 用于日志排查
  3. 检查 error.param 快速定位问题字段
  4. 4xx 错误不要重试(除非修改了请求参数)
  5. 5xx 错误使用退避重试(最多 3 次)
# 带错误处理的请求示例
response=$(curl -s -w "\n%{http_code}" \
  "https://openapi.qoder.sh/api/v1/cloud/agents" \
  -H "Authorization: Bearer $QODER_PAT")

# 提取 HTTP 状态码
http_code=$(echo "$response" | tail -1)
body=$(echo "$response" | sed '$d')

if [ "$http_code" -ge 400 ]; then
  # 提取错误类型
  error_type=$(echo "$body" | python3 -c "import sys,json; print(json.load(sys.stdin)['error']['type'])")
  echo "API 错误: $error_type"
fi