平台
错误
错误以 JSON 返回,格式与调用的端点一致,包含便于人理解的错误消息;OpenAI 风格的端点还提供稳定的错误码,供程序处理。
响应结构
{ "error": { "message": "This API key can't use `gpt-6-astra`. It's limited to gpt-6-sol. Change that at https://zurelay.com/app/keys.", "type": "permission_error", "param": "model", "code": "model_not_allowed" }}在 /v1/messages 上,同样的错误会按 Anthropic 格式返回,不含错误码:请使用 HTTP 状态码和 error.type: { "type": "error", "error": { "type": "...", "message": "..." } }。每个聊天、图像和视频响应,无论是否出错,都包含 x-request-id 响应头。
错误码
重试
- 遇到
429和503时,请等待retry-after响应头指定的秒数(或采用指数退避)后重试,除非响应中注明x-should-retry: false。 - 其他
4xx错误请勿原样重试:仍会因相同原因失败。 - 失败的请求不收费,因此重试在成功前不会产生费用。中途中断的流按已传输的内容计费,少数带有
x-should-retry: false的503则会收取输入费用(参见账单)。 - OpenAI 和 Anthropic 的官方 SDK 已会自动重试适合重试的错误。
流式传输中的错误
模型针对请求本身返回的错误(例如不支持某个参数、提示词过长),会保留模型原始的错误消息和错误码,并以 400 或 422 状态码返回。
流式传输中的错误
流一旦开始,后续错误就无法再通过 HTTP 状态码返回。此时会发送最后一个错误事件(采用该端点的格式),然后结束流。仅对输入及错误前你已收到的输出计费,之后的内容不计费。这种情况很少见:大多数问题都会在首个 token 发出前被发现并重试。
如果余额或密钥预算在流式传输中途耗尽,流也会以同类事件结束,错误码为 insufficient_quota、key_budget_exceeded 或 key_daily_budget_exceeded。非流式请求若在中途耗尽余额或预算,会返回已生成的内容,像达到 max_tokens 时一样截断(finish_reason: "length",或 /v1/messages 上的 stop_reason: "max_tokens"),并通过 x-zurelay-stopped 响应头注明错误码。
有疑问,或发现内容缺失?联系我们的支持团队,我们会通过邮件回复,通常只需一分钟。