Skip to main content
ByteSpike 以你调用的协议信封形状返回错误 —— /v1/messages 上 Anthropic 形状,/v1/chat/completions + /v1/responses + /v1/tasks/* + /v1/images/* 上 OpenAI 形状,/v1beta/... 上 Google 形状。 失败永不计费。 这是硬契约 —— 非 2xx 时 X-Quota-Remaining-Credits 不动,/api/v1/me/usage 不出新条目,/api/v1/me/billing/transactions 不出新行。

信封形状

error.type 取值:invalid_request_errorauthentication_errorpermission_errornot_found_errorrequest_too_largerate_limit_errorapi_erroroverloaded_error

状态码矩阵

400 Bad Request

输入不对。永不 重试 —— 同样请求体会同样失败。

401 Unauthorized

鉴权问题。永不 重试 —— 先修凭证。

402 Payment Required

钱用完或触达 quota。条件性重试 —— 只有充值或抬上限之后。

403 Forbidden

鉴权过了但不被允许。永不 重试 —— 调整 key、分组或 IP。

404 Not Found

端点或资源不存在。永不 重试。

413 Request Entity Too Large

请求体超过该路由的上限。永不 用同样请求体重试。

429 Too Many Requests

速率限制。重试 —— 用 X-RateLimit-Reset 决定退避。 退避策略见 速率限制

500 Internal Server Error

网关侧故障。重试,指数退避(1s、2s、4s、8s,4 次后放弃)。

502 / 503 / 504 —— 服务错误

请求在服务端没能完成。重试,带退避;ByteSpike 在透出之前已经做过内部重试。 对 503 特别地,在 Console → Models 里模型旁点 Test —— 它跑一次 dial-test,能告诉你 key + 分组 + 模型组合是否本身可行。

重试决策矩阵

重试的幂等性

文本端点(/v1/messages/chat/completions/responses)不幂等 —— 200 之后重试会让模型跑两次。除非拿到错误,否则别重试。 任务 API 通过 out_task_id 幂等。重试时发同样的 out_task_id,dispatcher 会返回已有的任务,而不是开新的。

Anthropic 特有:SSE 里的 error 事件

流中失败时,你会看到一个终结的 event: error,而不是 event: message_stop
已经流出的部分输出归你。不计费。从头重发请求 —— 没有 resume 语义。

OpenAI 特有:最终帧里的 error 字段

同样语义 —— 不计费、不能 resume。

用代码读错误

相关