错误

Direct API 的每个错误代码、其含义以及是否应重试,包括付费调用返回 5xx 后该怎么做。

每个错误的响应体格式都相同。根据 HTTP 状态和 code 进行分支;向用户展示 description 或 error.message。

{
  "description": "Human-readable explanation, safe to log.",
  "code": "machine_readable_code",
  "data": { "request_id": "…", "…": "…" },
  "error": { "error_code": "…", "message": "…" }
}

每个响应(无论成功还是出错)都带有 X-Request-Id。联系支持团队时请附上它。

错误代码

HTTPcode含义是否重试
400invalid_requestJSON 格式错误、请求体中有未知字段,或 input 未通过工具的 schema 校验(会逐一指出出错的字段)否,修正请求
401invalid_api_key密钥缺失、格式错误、已吊销或已过期否
402insufficient_credits组织无法支付此次调用充值后重试
402api_key_credit_limit_reached此次调用会超出密钥的每日、每月或总上限(data.period 说明是哪一个)在时间窗口重置或上限提高后重试
402subscription_paused组织的订阅已暂停在订阅恢复后重试
402payment_required组织的订阅已逾期未付在完成付款后重试
403direct_api_disabled此组织未开通 Direct API否,请联系 Morphic
403insufficient_scope密钥缺少此工具所需的权限范围(data.required_scopes)否,请使用其他密钥
403plan_upgrade_required你的套餐不包含该模型或功能否
403tool_not_available该工具会扣除积分,而你的组织尚未开启付费工具(data.tool 指出是哪个工具);由你的 Morphic 联系人为你开启否
403model_disabled_by_organization组织管理员关闭了此模型、分辨率或音频选项,并且没有为 API 允许它否,请询问你的管理员
404not_found未知的工具、生成任务或 webhook,或超出此密钥访问范围的对象否
409idempotency_conflictIdempotency-Key 被用于不同的请求体或工具否,请使用新键
409idempotency_in_progress使用此键的原始请求仍在运行是,等待一秒后
409idempotency_outcome_unknown使用此 Idempotency-Key 的原始请求失败,或在可能已经运行之后始终没有响应,因此其结果未知否:请先检查其结果,然后使用新键
413payload_too_large请求体超过 1 MB否
422tool_refused输入格式正确但无法运行;未扣除任何积分否,请修改输入
429rate_limited触发了 速率限制是,在 Retry-After 之后
500internal_error我们这边的问题免费调用:是;付费调用:见下文
503service_unavailable临时过载或维护免费调用:是,需退避;付费调用:见下文
504tool_timed_out工具未在 60 秒内响应;启动生成任务的调用可能仍已启动了它们免费调用:是;付费调用:见下文

422 tool_refused 会指出字段、值以及可以使用的值;参见 工具拒绝。启动后才失败的生成任务会在 生成任务对象 上报告其自己的 error.error_code,扣除的积分会退还。

返回 500、503 或 504 的付费调用,可能在失败前已经启动了工作并扣除了积分。使用相同的 Idempotency-Key 重试永远不会让它运行两次:重试会返回 409 idempotency_outcome_unknown。

  1. 检查该调用做了什么:list_generations,或按时间筛选的 GET /v1/direct/usage。
  2. 只为尚未启动的工作发送新的 Idempotency-Key。

如果完全没有收到响应(连接中断),请使用相同的键重试。你会得到已保存的响应,或者在它仍在运行时得到 409 idempotency_in_progress。参见 幂等性。


如果您遇到任何问题或有任何疑问,欢迎随时联系我们。我们很乐意提供帮助。请发送邮件至 support@morphic.com.

本页内容