
四个仓库整夜没有发版,落地的四张单里最要紧的是:Kimi 的并发 403 会把整组账号依次停调,Codex 长 message ID 截断后仍撞 400——连同四张还开着的补丁,逐条给出成因、影响面和今晚能做的事。
+ 和 /,撞上游 400;透传加 codex 模型、再显式传空 instructions,被本地 403 拦下;插件热重载不等用量插件收尾。instructions 删掉字段,别传空串;改插件版本,改完重启进程。/v1/messages。concurrent request limit、停 1 分钟。一批请求压上去之后,8 个号还是被依次停调,组里没有可用账号可调,前端开始回 5031。handleAuthError,一次就写永久 error6。Service temporarily unavailable,日志里账号和上游码都是空的7。
backend/internal/service/ratelimit_service.go 第 1019–1030 行:并发 403 在通用 403 计数之前单独分支,注释写明保留 failover 信号8GET /api/v1/admin/accounts/{id}/temp-unschedulable 看停调原因和到点时间,需要时用同一路径的 DELETE 解冻9;把单组并发或客户端并发压到单号上限以下,这是唯一不依赖代码改动的止血。Invalid 'input[102].id': … Expected an ID that contains letters, numbers, underscores, or dashes, but this value contained additional characters.,模型 gpt-6-astra,客户端 Codex Desktop 0.166.0-alpha.5.1 配 CC Switch 4.0.2110。
internal/runtime/executor/helps/codex_input_ids.go 第 220–236 行:只做截断与哈希后缀,函数内没有任何字符集过滤11+ /。报障人试的那条 ID 有 450 字符,截断后仍带 +,同一段对话的后续请求次次 400。codex(只做子串判断),且 body 里有 instructions、值既不是字符串、去空格后又是空14。命中就本地回 403 forbidden_error,文案 OpenAI codex passthrough requires a non-empty instructions field,请求到不了上游,同时记一条本地策略拒绝的业务日志15。
backend/internal/service/openai_gateway_request_body.go 第 1692–1713 行:两种拒绝原因,加上下面一行只看子串的 isOpenAICodexModel16instructions 整个字段缺失时,sub2api 会自动补一份默认值。踩雷的是显式传空串、或者传 null 的客户端。ApplyConfig 把返回值丢掉了,紧接着只检查 ctx 有没有取消18。callQuiesce 自己算的是 okCall && errQuiesce == nil,真出错时只打一条 warn 日志19。用量回调取的是「当前」插件实例,替换窗口里仍打到旧实例;RPC 侧失败只写一条 debug 日志,没有重放20。
internal/pluginhost/host.go 第 296–306 行:callQuiesce 的返回值没有接收方,只判了 ctx21The 'gpt-6.1-sol' model is not supported when using Codex with a ChatGPT account.22codex-free 的五项里没有 gpt-6.1-sol23,codex-team、codex-plus、codex-pro 三档的九项都含它24。| 目录里的档位 | 条目数 | 含 gpt-6.1-sol |
|---|---|---|
| codex-free | 5 | 否 |
| codex-team | 9 | 是 |
| codex-plus | 9 | 是 |
| codex-pro | 9 | 是 |
| 编号 | 形态 | 规模 | 它管什么 | 今晚要不要等 |
|---|---|---|---|---|
| CLIProxyAPI #7231 | PR,可合并 | 5 文件 +135/−11 | 用量明细补上缓存图片、缓存音频与按模态分布的 token25 | 跟今晚的处置无关 |
| sub2api #8499 | PR,可合并 | 9 文件 +400/−96 | 放行空 instructions,回显客户端原值17 | 想传空 instructions 就得等 |
| sub2api #8501 | PR,冲突待解 | 25 文件 +1903/−242 | 手动与自动刷新都去查上游额度,304 也查26 | 作者自述没验证过真实超限 |
| codex2api #849 | PR,可合并 | 18 文件 +736/−109 | 降智检测自适应退避,默认关闭27 | 不打开就没有影响 |
| 仓库 | 当前发行版 | 发布时间(北京) | 主干或开发分支 |
|---|---|---|---|
| CLIProxyAPI | v8.0.53 | 11-03 20:27 | main 与 dev 同为 01b24f1f |
| sub2api | v0.2.19 | 10-28 18:16 | main 停在 11-02 11:17(4a4a83ee) |
| codex-proxy | v2.1.23 | 11-03 19:35 | dev 停在 11-03 19:35 |
| codex2api | v3.1.2 | 10-28 04:39 | main 停在 11-03 02:00 |
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
github.com
status.openai.com
status.anthropic.com
codex-reset.com
opentherank.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.