错误码
请以 error_code 作为分支依据。“执行记录”一列表示返回中是否带 execution:带的说明已经产生了执行记录,重试需要换新的 invocation_id(unknown 除外,见重试规则)。
| HTTP | error_code |
执行记录 | 含义 | 处理建议 |
|---|---|---|---|---|
| 400 | COMMON.INVALID_INPUT |
无 | JSON 格式错误、包含未知字段或多余数据 | 修正请求 |
| 401 | AUTH.UNAUTHORIZED |
无 | 缺少凭据或凭据无效 | 检查凭据 |
| 403 | AUTH.FORBIDDEN |
无 | 缺少权限 | 申请对应权限 |
| 404 | COMMON.NOT_FOUND |
无 | 接口或资源不存在 | 检查路径或 ID |
| 409 | EXECUTION.DUPLICATE_INVOCATION |
有(已存在的) | 该 invocation_id 已经执行过 |
读取附带的 execution,不要再次计费 |
| 410 | <CAPABILITY>.RESULT_EXPIRED |
有 | 数据源报告结果已过期 | 按失败处理 |
| 413 | COMMON.REQUEST_TOO_LARGE |
无 | 请求体超过 64 KiB | 缩小请求 |
| 415 | COMMON.INVALID_INPUT |
无 | Content-Type 不是 JSON | 设置 Content-Type: application/json |
| 422 | COMMON.VALIDATION_FAILED |
无 | 字段校验失败、未知数据源、数据源不支持的可选字段 | 按 message 和能力参考修正 |
| 422 | <CAPABILITY>.INPUT_REJECTED |
有 | 数据源拒绝了输入 | 修正输入,换新 ID 再调用 |
| 429 | COMMON.RATE_LIMITED |
无 | 本地并发上限,没有启动任何调用 | 稍后用原 ID 重试 |
| 502 | EXECUTION.OUTCOME_UNKNOWN |
有 | 结果未知 | 不要自动重试,对账后人工处理 |
| 502 | PROVIDER.INVALID_RESPONSE |
有 | 数据源返回了无法使用的结果 | 按失败处理,可换新 ID 重试 |
| 502 | PROVIDER.RESULT_TOO_LARGE |
有 | 结果超过服务上限 | 缩小查询范围 |
| 503 | SERVICES.RECORD_UNAVAILABLE |
无 | 无法写入执行记录,没有启动任何调用 | 稍后用原 ID 重试 |
| 503 | SERVICES.PROVIDER_DISABLED |
无 | 数据源暂停接收新请求 | 换数据源或稍后重试 |
| 503 | PROVIDER.CONFIGURATION_ERROR |
有 | 数据源账号或凭据配置有误 | 联系 ZGI 平台团队 |
| 503 | PROVIDER.RATE_LIMITED |
有 | 数据源限流,可能带 Retry-After |
按 Retry-After 退避后换新 ID 重试 |
| 503 | PROVIDER.UNAVAILABLE |
有 | 数据源不可达或未完成 | 退避后换新 ID 重试 |
| 503 | COMMON.TIMEOUT |
有 | 请求发出之前就已超时 | 退避后换新 ID 重试 |
<CAPABILITY> 是大写的能力 ID,例如 PUBLIC_HOLIDAY。