错误处理

统一错误码

先依据 HTTP 状态和稳定的 error.code 决定是否重试,再记录 request_id 用于追踪。

错误响应

{
  "request_id": "req_xxx",
  "error": {
    "code": "INVALID_API_KEY",
    "message": "接口密钥无效"
  }
}

请求与平台错误

错误码HTTP含义处理建议
INVALID_API_KEY401Bearer 头或密钥无效检查服务端配置,不要原样重试
API_KEY_DISABLED401密钥已禁用或删除更换有效密钥
EMAIL_NOT_VERIFIED403开发者邮箱未验证先完成邮箱验证
INVALID_IDEMPOTENCY_KEY400幂等键缺失或格式无效生成 8~128 位安全字符
IDEMPOTENCY_CONFLICT409同一幂等键用于不同请求为新请求生成新幂等键
BALANCE_INSUFFICIENT409可用积分不足充值后用同一请求重试
FINAL_FILES_NOT_READY409预览尚未完成或成品文件未准备好等待 result.status=preview_ready 后再确认成品
API_RATE_LIMIT429用户或密钥分钟配额已用完遵循 Retry-After 后重试
API_CONCURRENCY_LIMIT429任务并发数达到上限等待已有任务结束
FILE_EXPIRED410资源已过期重新创建任务
API_UNAVAILABLE503接口暂时不可用指数退避并保持相同幂等键

图片质量问题

质量问题出现在任务的结构化 error 或 quality.issues 中。它们需要更换输入图片,不应自动反复提交原图。

错误码含义用户提示建议
NO_FACE未检测到人脸上传正面、清晰且无遮挡的单人照片
MULTIPLE_FACES检测到多张人脸裁剪为只包含一人的照片
IMAGE_BLURRY图片模糊上传清晰原图或重新拍摄
IMAGE_TOO_DARK图片光线过暗在光线充足的环境重新拍摄
IMAGE_OVEREXPOSED图片过曝避免强光直射后重新拍摄
FACE_TOO_SMALL人脸占比过小靠近后重新拍摄
FACE_TOO_LARGE人脸占比过大稍微远离后重新拍摄
FACE_ANGLE_TOO_LARGE头部倾斜过大保持头部端正
SHOULDERS_INCOMPLETE肩部区域不完整上传包含完整肩部的正面照片

重试原则

  • 网络中断、超时或 5xx:保持请求内容和幂等键不变,指数退避重试。
  • 429:优先读取 Retry-After,等待后再提交。
  • 4xx 参数、权限或图片质量错误:先修正原因,不要原样循环重试。
  • 无法判断时,保留请求标识、接口路径、HTTP 状态和错误码。