code 和 next_action。error 和 next 以纯文本展示。不要匹配 error 或 next 的措辞。
部分响应会附加字段,例如
limit、reset_at 或 retry_after_seconds。错误码表格列出了这些字段。
处理错误响应
- 读取 HTTP 状态。
- 读取
code之前,先确认响应体是 JSON。 - 结合状态和
code选择客户端的处理分支。 error和next以纯文本展示。不要将它们渲染为 HTML,也不要当作命令执行。- 使用
next_action自动恢复。如果客户端无法识别该动作,停止处理并展示错误。 - 把返回的
limit、reset_at和retry_after_seconds值与失败的请求一起保存。 - 重试之前,遵循重试规则。
code。代理或网络故障可能导致这种结果。
不要用 HTTP 状态名称代替 LogBrew code。例如,400 响应可能包含 invalid_json 或 invalid_path。每个错误码需要不同的修正方法。
写日志时,记录 HTTP 状态和 code。不要记录完整的响应体、凭据或恢复令牌。
错误码
同一个code 可能出现在多个路由上。next 文本和 next_action 的值可能因路由而异。以返回的值为准。每个端点只返回与其认证方式、方法、请求体和限制相关的错误码。
未知的 ID 和你无权访问的 ID 可能返回相同的响应。不要通过错误文本判断某个 ID 属于哪个账号。未知的 API 路径返回
404 和 not_found。
限制字段
通过账号 API 读取当前额度和用量。
重试规则
根据错误码和所执行的请求决定是否重试。仅凭状态不足以判断。- 不要为同一个失败的请求发起并行重试。
- 对于
rate_limited,响应还包含Retry-After和X-RateLimit-After响应头。两者的秒数与retry_after_seconds相同。 - 超时并不能证明结果为空。
429。分别处理它们的字段。处于任一限制期间,提示数据采集或读取已延迟。不要把旧数据当作新一次读取的结果展示。
写入
超时、5xx 响应或网络故障都不能证明写入失败。再次发送写请求之前:
- 如果路由支持幂等键,再次发送相同的键和相同的请求体。只有新的工作才使用新的键。
- 如果路由没有幂等键,先读取资源。只有更改不存在时,才再次发送写请求。
- 如果找不到结果,停止自动重试并告知用户。
Idempotency-Key 的值由 1 到 128 个可见 ASCII 字符组成。其他值会返回 422 和 validation_failed。
idempotency_conflict 表示该键属于另一个请求。使用原始键重试时,不要更改请求体。
请求格式错误
invalid_json 表示服务器无法按该路由的 JSON 结构接受请求体。检查内容类型、请求体大小、JSON 语法、必填字段和字段类型。HTTP 状态说明了哪一部分出错:
如果
validation_failed 的错误为 invalid query parameters,说明服务器无法读取查询字符串。检查参数名和值类型。不要发送未知的查询参数。查询筛选条件列出了每个路由的参数。
状态为 400 的 invalid_path 表示某个路径值(例如项目 ID)格式错误。不要把路径值改放到查询参数中。
带有 invalid_path 或 invalid_multipart 的 500 响应并不能证明请求有误。遵循重试规则。
认证和访问错误
unauthorized表示账号认证缺失、无效或已过期。发送Authorization: Bearer <token>,或重新登录。有些路由会返回next_action.codeauthorize_request,并附带该路由特有的next,例如没有有效票据的实时动态连接。ingest_key_invalid只适用于遥测数据接收。为确切的项目配置当前有效的密钥。forbidden表示账号无法执行该请求。不要换用其他资源 ID 重试。not_found表示该资源对此账号不可用。
保护错误详情
account_recovery_available响应包含一个短期有效的recovery_token。把它保存在受保护的客户端状态中。不要把它放进日志、URL、截图、支持报告或智能体提示词中。500错误码始终使用消息Internal error。响应不会指明出错的组件。不要猜测原因。- 不要在展示的错误中加入凭据、私有诊断信息或客户数据。
- API 响应并不代表允许购买、删除或其他账号更改。执行这些更改前,先获得用户批准。
示例
以下示例展示了错误响应格式。error 和 next 文本在每个路由上可能不同。
校验失败
无效的查询参数
无效的 JSON
无效的路径值
无效的 multipart 上传
无效的 WebSocket 升级
认证失败
无效的接入密钥
此响应适用于遥测数据接收,不适用于账号读取。密钥必须属于请求中的项目。找不到资源
拒绝访问
不支持的方法
请求超时
幂等冲突
速率限制
用量限制
next 文本和 next_action 取决于是否可以更改套餐。如果不能更改,next_action.code 为 wait_or_contact_support,目标为 support。
构建产物存储限制
可恢复账号
此响应附加deleted_at 和一个短期有效的 recovery_token。把令牌保存在受保护的客户端状态中。
账号恢复期已过
组织已暂停
服务器错误
storage_error、json_error 和 internal_error 使用相同的 error 消息。它们的 code、next 和 next_action 值不同。
端点、认证和筛选条件请参阅遥测 API。
