拒绝 1m 测试头时不再整段失败
Claude Code 2.1.295 修复:模型 ID 带 [1m] 时,若网关、Bedrock、Vertex 或 Foundry 拒绝 context-1m 这个 beta,以前每一次请求都失败。现在会去掉该 beta 再发一次。说明没有写重发后仍按 100 万上下文计,也没有写官方 API 会拒绝这个头。

模型名上带 [1m],请求却每一轮都失败,常见于网关不认长上下文的测试头。Claude Code 2.1.295 写:在 [1m] 模型上,网关、Bedrock、Vertex 或 Foundry 拒绝 context-1m 这个 beta 时,以前每一次请求都失败。现在 Claude Code 会去掉这个 beta 再发一次。claude code context-1m 被拒 从这一版起不应再把整个会话卡死。说明没有写 Anthropic 官方 API 会拒绝这个头。
重发去掉的是测试头,不是把窗口变长
修复是重发时不带 context-1m。它没有写上游因此接受 100 万 token。网关若仍把上下文停在 20 万,去掉 beta 之后请求能通,长会话仍可能在长度上失败。自定义 ANTHROPIC_BASE_URL 下客户端按 100 万假设窗口,是 2.1.285 的另一句,见 自定义接口按 100 万。那句管压缩阈值。2.1.295 这句管 beta 被拒绝时不要把所有请求都打成失败。两句可以同时生效:客户端按 100 万准备,上游拒绝测试头时改成不带该头再试。试通了也不表示上游窗口是 100 万。
低于 2.1.295 时,一次拒绝会让后续每一轮都失败。换模型、压缩,只要还在用带 [1m] 的 ID 且上游拒绝该 beta,仍会失败。升级后若第一条能过、超长仍报长度错误,那是窗口本身,不是这个 beta 把通道堵死。
谁会拒绝,说明点了四家
点名的是网关、Bedrock、Vertex、Foundry。没有写直连 Anthropic API 走这条重发。官方 API 上的 100 万模型本来接受这个能力时,不需要靠「去掉 beta」。你的失败若来自中转返回不认识的 beta,对的是这一条。失败若是模型 ID 本身不存在,去掉 beta 也不会变成一个有效模型。
[1m] 写在模型 ID 里,和上下文窗口的数字是两件事。重发去掉的是名为 context-1m 的 beta 头,模型 ID 字符串说明没有写会被改掉。网关若按完整 ID 路由,仍会看到带 [1m] 的名字,只是少了那个头。日志里若从「不认识的 beta」变成「上下文超限」,说明重发生效了,接下来对的是上游真实窗口,可以用 /autocompact 200k 对齐停在 20 万的网关。那条命令在 2.1.285 的说明里,不是 2.1.295 新加的。