跳到主要内容
开发者文档开始使用

错误

统一的错误结构、稳定的错误码、明确的重试规则。

所有非 2xx 响应都使用同一结构。请根据 error.code 进行分支处理,切勿依据 message。

JSON
{
  "error": {
    "code": "validation_failed",
    "message": "The request is invalid.",
    "request_id": "req_8fK2Lq9ZtX4mN7bV1cW3yH6p",
    "details": [
      {
        "path": "items[3].length",
        "code": "out_of_range",
        "message": "length must be greater than 0."
      }
    ]
  }
}
字段内容
code稳定不变,snake_case 格式
message英文,用于日志
request_id同时出现在 X-Request-Id 中。联系技术支持时请提供
details[]400/422 时返回:每个问题对应的 path、code、message

错误码

状态码错误码含义处理方式可重试
400invalid_json请求体不是有效的 JSON,或某个字段类型错误。修正请求体。否
401unauthorizedAPI 密钥缺失、格式错误或无法识别。发送 Authorization: Bearer cd_live_…,并检查密钥是否完整复制。否
401key_revoked密钥已被撤销。在开发者控制台中创建新密钥。否
401key_expired密钥已过期。在开发者控制台中创建新密钥。否
402insufficient_credits可用积分不足以支付该任务的最低可能费用。购买积分包或等待月度积分发放;本次未扣费。否
403ip_not_allowed调用方 IP 不在该密钥的 IP 白名单中。从允许的 IP 发起调用,或编辑 IP 白名单。否
403subscription_inactive组织没有包含 API 的有效订阅。续订您的订阅。否
403account_inactive组织已被暂停使用,或其所有者的账户均未处于有效状态。联系技术支持。否
403scope_missing密钥缺少此接口所需的权限范围。使用具有所需权限范围的密钥(pack:write、jobs:read、account:read、resources:read、resources:write)。否
403preset_read_only预设车辆不能修改或删除。请改为创建自己的车辆:POST /v1/vehicles.否
403plan_limit_reached组织的套餐已达到项目或货物数量上限。删除不再需要的项目,或升级到更高的套餐。否
404not_found没有与此方法和路径匹配的 /v1 接口。对照接口列表检查请求方法和路径。否
404job_not_found您的组织中没有此 ID 的任务。检查 ID。否
404vehicle_not_found预设车辆和您组织的车辆中都没有此 ID。核对 ID,车辆列表见 GET /v1/vehicles.否
404template_not_found您的组织中没有此 ID 的模板。核对 ID,模板列表见 GET /v1/templates.否
404project_not_found您的组织中没有此 ID 的项目。核对 ID,项目列表见 GET /v1/projects.否
409job_not_finished任务仍在排队或运行中。轮询 GET /v1/jobs/{id},直到 status 为 succeeded。是
409project_busy该项目正在进行装载计算(在应用中或由另一个任务执行)。等待该次计算结束后重试。是
409job_failed任务失败,没有结果。查看 job.error;因我方原因导致的失败不收费(time_limit_exceeded 按已取消任务计费)。如果是临时原因,请重新提交。否
409job_canceled任务已取消,没有结果。如有需要,请重新提交。否
409job_already_finished任务已结束,无法取消。无需处理。否
400idempotency_key_invalidIdempotency-Key 请求头超过 128 个字符。使用更短的键(UUID 即可)。否
410result_expired结果已超过保留期并被删除。如需再次获取方案,请重新提交任务。否
413payload_too_large请求体超过 10 MB。减少物品数量或简化物品。否
422validation_failed请求是格式正确的 JSON,但描述的任务无效。details[] 列出了所有问题。逐一修正 details[].path 指出的问题;校验失败不收费。否
429rate_limited当前分钟、小时或天内的请求过多(按密钥或按组织计),或您的 IP 地址每分钟认证失败超过 60 次。等待 Retry-After 指定的秒数,然后使用退避策略重试。是
429too_many_jobs组织的排队中 + 运行中任务数已达上限。等待运行中的任务完成后重试。是
500internal_error服务端发生内部错误。使用退避策略重试;如问题持续,请提供 request_id。是
503api_disabledAPI 暂时停用(维护中),或已对该组织关闭。稍后重试。是

校验详情

422 validation_failed 中的 details[].code:

错误码含义
required缺少必填字段
invalid_value类型错误,或不是允许的值之一
out_of_range过小、过大或过长
duplicate_id某个 ID 被重复使用
unknown_vehicle没有与该 vehicle_id 对应的预设车辆或您自己的车辆
unknown_template您没有与该 template_id 对应的模板
type_not_allowed该车辆类型未对您的组织开放
unknown_group物品引用了未列出的分组
does_not_fit该物品无法装入任何列出的车辆
too_many_items物品件数超过任务上限
too_many_vehicles车辆数超过任务上限
unknown_fieldAPI 无法识别的字段

任务错误

状态为 failed 或 canceled 的任务会在 job.error.code 中说明原因:

错误码含义
canceled任务已被取消,收取任务基础费和已用计算费用。取消接口为 DELETE /v1/jobs/{id}.
time_limit_exceeded在任何车辆装载完成之前,计算时间预算已用完。按已取消任务计费:收取任务基础费、大批量装载附加费和已用计算费用,不收取车辆费用。
engine_failed装载引擎出错。不收费。
queue_timeout任务等待计算槽位的时间过长。不收费。
server_restarted任务排队或运行期间服务重启。不收费。

重试

对 429、500 和 503 使用指数退避重试,并遵循 Retry-After。重试时发送相同的 Idempotency-Key(幂等性)。其他 4xx 错误不要原样重试。

相关内容