
四仓零发版的窗口里,真正要处理的是额度耗尽时 WebSocket 只断线不报错:一条消息触发约 21 次失败上游执行、空等 30–45 秒,另附两条翻译层与惩罚范围的坑,以及今晚就能改的配置。
T3 Code/0.166.0 并开启 responses_websockets=2026-02-06,配置里 request-retry: 0、disable-cooling: true。上游回的是 {"error":{"type":"usage_limit_reached"}}。1upstream execution session closed。1
shouldExposeResponsesUpstreamError 与它的调用点:第 409–421 行命中静默分支时,只往请求日志时间线追加一条 disconnect,然后 closeWithoutError() 收掉连接。来源:sdk/api/handlers/openai/openai_responses_websocket_forward.go 第 386–424 行(v8.0.55)2IsRequestFault 一进门就把 429 与 402 判成「不是请求的错」,注释写明理由——凭证必须仍然可以冷却、可以换号。3
return false。这正是「额度耗尽不会被告知」的那一行。来源:internal/clienterror/client_error.go 第 76–99 行(v8.0.55)3modelCooldownError,它的 StatusCode() 返回 429、Headers() 会写一个 Retry-After 头。4 WebSocket 那条路上,同一个原因走到静默分支,客户端拿到的只有断开。disable-cooling: true 时凭证不会进冷却,选号每次都会再把它选出来,于是「同一个失败重放 21 次」成了稳定形态,而不是偶发。disable-cooling: true 的组合下没有第二条路可走,重试次数再多也只是把同一堵墙撞更多次;停用这张凭证或临时打开冷却,客户端才有机会拿到「没号可用」。appendWebsocketTimelineDisconnect 写下的那条 disconnect 事件。客户端侧只会显示 1006,照着客户端现象去查代理日志里的 HTTP 状态码会一无所获。Retry-After,而不是断开。#7245 仍是 open,状态 dirty、21 笔提交、改 58 个文件、基于 dev;它依赖的 #7239 已经在昨天 17:29 被关成未合并。56 v8.0.55 的源码包里搜不到这个开关的名字,别等这一版把它修掉。5choices[0].delta.content 是数组(按类型分块)而不是字符串时,openai→claude 的流式翻译会把这个数组原样序列化成文本发下去。报障人给的上游实例是 Mistral 承载的 zai-glm-5-3。7
content.String(),第 316 行把结果直接塞进 delta.text。数组因此以 JSON 文本的形态出现在客户端正文里。来源:internal/translator/openai/claude/openai_claude_response.go 第 284–322 行(v8.0.55)8text、tool_calls、reasoning 三种分块类型,其余类型落 default 被丢掉。9 所以同一个上游,流式会把数组当字串贴出来,非流式会让不认识的那些块直接消失。[text, thinking],与流式的顺序相反。7[{"type": 开头的片段,或者一段本应是推理的内容以 JSON 形式出现,就是这条。对同一请求关掉流式再发一次,可以同时确认第二种症状(推理块消失或顺序颠倒)。SetError 停用。11
internal500_account_disabled、第 54 与 64 行日志键 internal500_temp_unschedulable。注意第 31–34 行的注释仍写着「10 分钟 / 10 小时」,与常量不符。来源:backend/internal/service/antigravity_internal500_penalty.go 第 13–70 行(v0.2.19)11error.code 为 500、error.message 恰好是 Internal error encountered.、error.status 为 INTERNAL,四个条件缺一不算。11internal500_temp_unschedulable 与 internal500_account_disabled 搜,确认是「临时不可调度」还是「已停用」;两种对应不同的解冻接口——POST /api/v1/admin/accounts/{id}/clear-error 用于 SetError,DELETE /api/v1/admin/accounts/{id}/temp-unschedulable 用于临时不可调度,另外还有 clear-rate-limit 与 batch-clear-error。13
Utilization 与 ResetTime 两个字段。5 小时窗口与周窗口在这里被压成一个数。来源:backend/internal/service/antigravity_quota_fetcher.go 第 137–160 行(v0.2.19)14组·5h 与 组·周 并列。15 在它合并之前,判断办法有两个:看 ResetTime 距离现在多远(几小时是 5 小时窗口,几天是周窗口);或者用官方 CLI 的 /usage 对照,它调的是上游的配额汇总接口。15#7254(OpenAI 兼容路由丢 tool_search)仍 open、零评论、无标签,上一期写过的三条落点在 v8.0.55 里没有变化;#7236 只有 updated_at 变动,提交数仍为 2、状态仍 dirty,不构成新进展。2021github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
status.openai.com
status.anthropic.com
status.cloud.google.com
codex-reset.com
community.openai.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.