
sub2api 把 1700 条过载吸收掉之后,仍有 675 条落到客户端;本期拆开卡住它们的三处判定,并核清那张池恢复补丁为何进不了任何发行版。
| 类别 | 客户端看到 | 近三天数量 |
|---|---|---|
流内 server_is_overloaded,被重试或换号吸收 1 | 200 | 约 1700 |
| 同上,同账号重试三次用尽 1 | 503 | 约 195 |
流内 server_error,输出之前 1 | 502 | 约 80 |
选号失败:No available OpenAI accounts 1 | 503 | 约 400 |
server_error 在 v0.2.17 里被归成 502。3handleFailoverExhausted,再经 mapUpstreamError 变成 502 与 Upstream service temporarily unavailable。6
backend/internal/service/openai_account_model_transient.go 第 106–126 行:第 112–116 行按 failureStreak 分两档,三次以上取 45 秒、正好两次取 10 秒,第 119 行把它们写进 blockUntil。(openai_account_model_transient.go) isOpenAIAccountRequestRuntimeBlocked 第 569 行直接把模型级结果返回,后面就结束了。9
backend/internal/service/openai_account_runtime_block_fastpath.go 第 556–570 行:第 562–568 行先处理账号级的本地封锁,还留了一个 CAS 兜底;第 569 行把模型级判定直接返回,这一行没有任何旁路条件。(openai_account_runtime_block_fastpath.go) /v1/responses 与 /v1/chat/completions。supports_websockets: true,原生客户端走 WebSocket。openai_oauth_responses_websockets_v2_enabled,API Key 号读 openai_apikey_responses_websockets_v2_enabled;老字段 responses_websockets_v2_enabled 与 openai_ws_enabled 仍然兼容。11server_is_overloaded 的频率。gemini-api-key 账号打 Claude 的 /v1/messages。Function call is missing a thought_signature in functionCall parts。generativelanguage.googleapis.com 量了四种形状。只有两个调用都签名的那一种通过;中间夹普通文本、或夹一个空文本,都回 400,夹 thought 才通过。12
internal/signature/gemini_sanitize.go 第 74–112 行:第 75 行每轮初始化一次 firstFunctionCallSeen;第 105–108 行只在第一个 functionCall 上置真;第 110–112 行遇到没有签名的文本直接放行,这个标志照旧为真。(gemini_sanitize.go) promptFeedback 拦截:OpenAI 出口报「流在任何 chunk 带 finish_reason 之前就断了」,等于截断。15 Claude 出口因为 promptFeedback.blockReason 已被算成结束信号,直接以空回复收尾。16
internal/api/server_routes.go 第 1071–1086 行:返回的 map 只有四个键;结构体里带着 contextLength 与 maxCompletionTokens,这两个值一个都没写出去。(server_routes.go) package.json 与锁文件。26 v0.2.17 仍带旧版。| 处境 | 今天做什么 | 依据 |
|---|---|---|
| 跑 v0.2.17、可调度号少于 3 个 | 这是最容易被放大的一档:模型冷却会把仅有的候选挡掉,先补号 | 判定 |
想让流内 server_error 也有同账号重试 | 池模式账号可在凭据里把 pool_mode_retry_status_codes 加进 502/503,默认只有 401/403/429 | 默认清单 |
| 怀疑过载是出站方式导致 | 单号开 openai_oauth_responses_websockets_v2_enabled 做 A/B;他引的那份实测支持的结论是别的 | 开关 |
| 等 sub2api 的池恢复 | #8311 已被作者自己关成 not_planned,改动只在分支上 | issue |
用 Claude Code 走 gemini-api-key | 别在两次工具调用之间插文本;#6910 未进发行版 | PR |
| 用 Zed 接 CLIProxyAPI 的 Gemini 端点 | 关掉 Home 模式,或手填 available_models | 字段 |
| 等 CLIProxyAPI 这批修复 | 六条全 open、都在 dev 之外,下一次发版前都不算数 | PR #6915 |
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
github.com
github.com
github.com
github.com
github.com
status.openai.com
codex-reset.com
opentherank.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.