
10 月 16 日午后这四十几分钟里,sub2api 上一张新单说明 Grok 上游一个识别不出账号状态的 403 会把账号逐个冷却 30 分钟、单个请求最多连坐 11 个账号,补丁已在线上验过但还没合并;另一张单把 OpenAI 200 流里的降载对到了一张同样未合并的修复。
grok access or entitlement denied 临时不可调度 30 分钟。同一个请求随后继续换号,下一个账号再吃到同一种 403,也一样被冷却 30 分钟。gateway.max_account_switches 的默认值是 10。首个账号加上十次换号,单个请求最多能把 11 个账号打进冷却。号池这样被清空之后,客户端拿到的是 Service temporarily unavailable,这条文案出自选不到账号时的兜底分类6。permission-denied 这类不带账号健康信号的 403,都会被当成权限失效。账号停用、订阅与权限要求、额度与消费上限、内容策略,以及已经命中的临时不可调度规则,走的还是原来的处理。handleGrokAccountUpstreamError 的 403 分支。这一分支只先看一眼 isGrokSpendingLimitError,不匹配就落到第 2073 行的 30 分钟冷却7。tempUnscheduleGrok 把账号的 TempUnschedulableUntil 设成当前时刻加 30 分钟,并写进数据库8。shouldFailoverGrokUpstreamError 只把内容策略 403 判为不换号,其余交给分类器9。分类器对这个认不出的 403 返回「无类」,函数就回落到 shouldFailoverUpstreamError,而后者把 401、402、403、405、429、529 一律算可换号10。
backend/internal/service/openai_gateway_grok.go 第 2054–2073 行:池模式账号在第 2057 行就返回,普通账号落到第 2067 行的 403 分支,中间只有消费上限一条前置判断,其余全在第 2073 行按 30 分钟冷却7HandleFailoverError 里累计,SwitchCount 到 MaxSwitches 才停手,日志里对应的那行是 gateway.failover_switch_account11。默认值 10 由 viper.SetDefault("gateway.max_account_switches", 10) 给出12。IsPoolMode() 为真的账号在 switch 之前就返回,不写账号状态13,而这个开关只在 API Key 与 Bedrock 账号上可能为真14。按默认配置跑的 OAuth 账号都会落进这 30 分钟。GET 与 DELETE /api/v1/admin/accounts/:id/temp-unschedulable1516。gateway.max_account_switches 的默认值写在代码里,deploy/config.example.yaml 的 gateway: 段只列了 min_output_tokens,这个键要自己加17。调到 1,一次请求最多只有首个账号被冷却。dingyufei615:codex/grok-unrecognized-403-upstream18。补丁给这类 403 单加一条判定,归到「请求级兼容问题」:不冷却账号,也不换号;账号停用、额度与消费上限、内容策略保持原样。v0.2.17-grok403-1 就恢复了。这份镜像由作者自己构建,用不用要自己判断。response.queued 或 response.metadata,而 v0.2.17 的 openAIStreamEventIsMetadata 只认 response.created、response.in_progress 和 keepalive 三个事件22。
backend/internal/service/openai_gateway_passthrough.go 第 1086–1100 行:第 1090 行那份名单里只有 response.created、response.in_progress 和 keepalive,PR #8139 要补的 response.queued 与 response.metadata 都不在其中22error 和 response.failed 因此到不了原有的输出前重试与换号路径,直接透给客户端21。同一处理还会错误地开始计算首个 token 的耗时,并解掉首输出超时。server_is_overloaded 或 response.failed 就收尾,那和 #8139 对得上;如果拿到的是连接级的 503,还得另找原因。codex_default_model,让面板的 CC Switch 导入与 Codex 模板不再写死模型,24 个文件 +295/−5、15 笔提交23。它在 14:54 开出、15:13 关闭,两条评论分别是 CLA 机器人和作者的签名。frontend/src/utils/ccswitchImport.ts 第 3、4 行分别是 OPENAI_CC_SWITCH_CODEX_MODEL = 'gpt-5.5' 和 GROK_CC_SWITCH_MODEL = 'grok-4.5'24,对应的 issue #8135 仍开着25。想改这个默认值,这一版只能自己改前端。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
codex-reset.com
opentherank.com
status.openai.com
status.anthropic.com
status.cloud.google.com
reddit.com
antigravity.google
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.