
xAI 一句「这个请求我不做」的 403,在 v8.0.53 里既不算请求过错又照旧参与重试,七秒钟就把八张 xAI 凭证逐张写进 30 分钟冷却——附今晚就能改的 oauth 规则写法与乘积算法。
209dbef5,今天下午 16:53:53 到 16:54:00 连打八次。{"code":"permission-denied","error":"I'm sorry, I can't help with that request."}。IsRequestFault(403, err) 返回 false。{
"scope": "model",
"model_key": "grok-4.7",
"reason": "payment_required",
"retry_at": "2026-11-04T09:24:00.22785644Z",
"remaining_seconds": 543,
"http_status": 403
}remaining_seconds 只剩 543,说明这条冷却已经走过二十来分钟,还在计。5
payment_required 更容易误导人。case 402, 403: return "payment_required"。7
IsRequestFault 是一长串短路判断,按顺序看就明白 403 落到了哪。default: return false。8
permission-denied 没有任何一条判断能走到。permission_denied(下划线),且命中「MCP 配置问题」或「内容策略拦截」两句固定文案之一。9permission-denied(连字符),那两句文案也都不含。permission-denied 不在其中。8e25b7da 单独补过一次,把请求本身有问题的 403 从换号里摘出来。10request-retry: 3、max-retry-credentials: 2。request-retry 是「首轮把可用凭证用完之后,额外再来几轮」。
request-retry 管轮次、max-retry-credentials 管每轮最多试几张,两者相乘才是单条请求的伤害上限。11max-retry-credentials 的默认值是 0,意思是试遍所有可用凭证。request-retry: 3,就是一条坏请求撞遍全池。oauth:
request-scoped-errors:
xai:
- status: 403
match:
- "permission-denied"
action: "stop"
match 里的任意一条,匹配是区分大小写的子串比较。action: "stop" 的后果是确定的:这条请求立刻结束、不换号,错误码被标成 request_scoped。request_scoped 在冷却侧属于「必须跳过」的一类,模型级与凭证级冷却都不会写。14max-retry-credentials 设成 1,或者在真实故障不多时把 request-retry 降到 1。max-retry-interval: 30 只管轮次之间最多等多久,跟次数无关,别指望它。disable-cooling 只是让本地不写冷却,并不阻止换号。冷却没了,下一轮还是那批号,撞得更密。11server.trusted-proxies 写全反代出口的 IP 或 CIDR;没配的时候,CPA 只认直连对端,不采信转发头。management.allow-remote: true。16trusted-proxies 默认是空列表,注释也写明改完要重启。17oauth.request-scoped-errors 的 xai 规则,再看乘积,最后核对 trusted-proxies。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
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.