Claude Code 长任务跑到一半,要开 usage credits 才给用 1M 上下文,周额度明明还剩一大半

假设让 Claude Code 把一个老 Express 项目里的回调全改成 async/await,几十个文件挨个过。前面改得挺顺,到第三十来个文件时它突然停了,终端最后一行写着 Usage credits required for 1M context。这时候第一反应多半是额度烧完了,可 /usage 一看,会话和每周额度都还有不少。

这个报错跟额度没关系。官方错误参考页 https://code.claude.com/docs/en/errors 把它归在 Usage limits 一节,但特意写了它是 entitlement check(权限检查),不是额度耗尽,会话和周额度还有余量照样会触发。10 月的页面上,原文是这样的:

API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context

2.1.268 之前的版本,结尾没有括号里那句重启的提示。用 Claude Desktop 跑的会话,提示里不写命令,而是让你去 claude.ai 的用量设置页开。

它的意思是你当前选的模型用的是 1M 上下文,而你的套餐只能通过 usage credits(按量计费的额外用量)用 1M。模型配置页 Model configuration - Claude Code Docs 的 Extended context 一节有张表:Opus 4.6 和 Sonnet 4.6 只有带 [1m] 后缀的变体才是 1M。Pro 上这两个 [1m] 都要 usage credits;Max、Team、Enterprise 的 Opus 4.6 1M 包含在订阅里,Sonnet 4.6 的 1M 在所有订阅套餐上都要 usage credits,Max 也一样。所以 Pro 用户在 /model 里手滑选了带 [1m] 的,或者配置里早就写死了 sonnet[1m],任务一长就撞上。

不想花钱的话,/model 打开选择器,挑不带 [1m] 的那个回车就行。注意回车会把选择写进用户设置的 model 字段,当成以后新会话的默认;只想这次会话临时换,在那一行按 s。如果换完还报,说明别处还钉着 1M 的模型 ID。官方给的优先级从高到低是会话里的 /model、启动参数 claude --model、环境变量 ANTHROPIC_MODEL、settings 文件里的 model 字段、ANTHROPIC_DEFAULT_MODEL,挨个查一遍。

想一劳永逸,就设 CLAUDE_CODE_DISABLE_1M_CONTEXT=1,shell 里 export 或者写进 settings 的 env 都行。设了以后选择器里不再出现 [1m] 变体,那些默认就跑 1M 的新模型也会被当成 200K 窗口,靠自动压缩卡在 200K 以内。要是你把自动压缩关了,到 200K 会直接停在上下文超长的报错上,这点得自己掂量。

真打算用 1M,就跑 /usage-credits 打开按量计费,然后按提示重启 Claude Code 或开新会话,不重启的话这个会话还是标准上下文。

还有一种情况是你压根没选 [1m],会话在标准上下文里聊着聊着超过 200K 也弹这个错。这个是 bug,2.1.311(changelog 标的日期是 10 月 26 日)修了:现在会自动压缩对话然后接着跑。同一版还把那些 [1m] 后缀不起作用的模型名里的后缀去掉了,旧写法仍然认。往前看 2.1.307(10 月 21 日)也修了一个相关的:设了 CLAUDE_CODE_DISABLE_1M_CONTEXT 但模型写的是 opus[1m] 这种带后缀的别名时,请求会报 model-not-found。碰到这类问题先 claude --version 看一眼,低于 2.1.311 就先升级再说。changelog 在 Claude Code changelog - Claude Code Docs 。更老的版本还有个坑,错误参考页写着 2.1.172 之前这个错会在之后每个请求上重复出现,连 /compact 也一样,只能 /clear。

官方仓库里 [BUG] API Error: Usage credits required for 1M context · Issue #63060 · anthropics/claude-code · GitHub 是这个报错的大讨论串,从 5 月开到现在,还挂着 open 和 duplicate 标签。下面的评论都是用户自己的反馈,不是官方答复:有 Pro 和 Max 用户说周用量才百分之几就被拦,有人说额外额度被悄悄扣了不少;大家试出来的办法有 /export 后开新会话、先换个模型 /compact 再换回来、设上面那个环境变量,也有人说设了照样报。具体哪种对你管用看版本,版本够新的话先按官方文档那几步来。

VS Code 插件或者 Desktop 里报这个错的,不知道是不是同一套逻辑,遇到过的可以说说。