跳转到内容

错误

错误共用一个封装结构(参见概览)。根据 code 进行分支判断,记录 meta.request_id,并将 message 视为供人阅读的英文文本。

代码 状态 含义和处理方法
validation_failed 400 某个字段未通过验证。field 指明该字段;details 给出说明。请修正该字段。
bad_request 400 请求完全无法读取:JSON 格式错误、Content-Encoding 数据流损坏、正文被中断。没有需要修正的字段;请检查传输过程。
validation_error 400 向禁止使用 X-Account-Id 的端点(/auth/login、/auth/refresh、/auth/swap-company、/auth/logout)发送了该标头。
cursor_expired 400 分页游标已超过 24 小时。请重新开始列表查询。
unauthenticated 401 令牌缺失或无效。请刷新会话或检查密钥。
invalid_signature 401 Webhook 签名验证失败。请参阅 Webhook。
forbidden 403 令牌有效但缺少权限。
account_context_mismatch 403 X-Account-Id 与令牌所属账户不匹配。客户端对当前公司的认知已经偏离;请从会话中重新读取。
not_found 404 资源不存在,或属于其他账户或站点。API 从不区分这两种情况。
conflict 409 状态冲突:乐观锁、唯一约束,或在当前状态下不允许的操作(例如向已合并的对话写入)。
idempotency_key_conflict 409 同一个 Idempotency-Key 被用于不同的正文。
payload_too_large 413 正文超出该端点系列的限制。
unsupported_media_type 415 Content-Type 错误。
unprocessable 422 JSON 有效,但被业务规则拒绝(例如预约时段在工作时间之外)。
storage_quota_exceeded 422 账户已达到其套餐的存储上限。details 包含 used_bytes、quota_bytes 和 requested_bytes;请释放空间或升级套餐。
rate_limited 429 请降低请求频率。遵循 Retry-After 和 details.retry_after_seconds。
代码 状态 含义和处理方法
internal_error 500 意外故障。重试一次,然后携带 request_id 联系支持团队。
upstream_unavailable 502 网关完全无法访问该服务。短暂等待后重试通常会成功。
service_unavailable 503 计划维护或熔断器已打开。请在 Retry-After 标头指定的时间后重试。
ai_vendor_out_of_funds 503 您的 AI 提供商因计费原因拒绝了调用(供应商返回 402 或配额 429)。请为供应商账户充值;重试无济于事。
upstream_timeout 504 服务未能及时响应。存在 retry_after 时请重试。

对 429、502、503、504 和网络故障使用指数退避进行重试,并在重试时发送相同的 Idempotency-Key,确保写入操作绝不会被执行两次。除 429 外,不要重试其他 4xx 错误。