跳转到主要内容

简短答案

如果 Claude Code 使用 AWS Claude 官方通道时出现 400 ValidationExceptionExtra inputs are not permittedcache_control.scope 相关错误,先在启动 Claude Code 前设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1。这个设置会关闭 Claude Code 实验性 Beta 请求字段,避免部分额外字段被 AWS Claude / Bedrock 通道判定为非法输入。临时排查可以用 export,长期使用建议写入 ~/.claude/settings.json

适用场景

  • 已经按Claude Code 配置教程接入老张API
  • Claude Code 使用 AWS Claude 官方通道或 Bedrock 相关通道
  • 终端、日志或报错里出现 400 ValidationException
  • 错误信息包含 Extra inputs are not permitted
  • 错误信息指向 cache_control.scopecache_controlscope 或类似额外请求字段
  • API Key、余额和模型 ID 看起来正常,但 Claude Code 仍在请求阶段被拒绝
这类错误通常是请求字段兼容性问题,不一定代表账户余额不足、模型下线或 API Key 失效。不要先反复更换密钥,先按下面步骤关闭实验性 Beta 请求字段。

临时生效:启动前设置环境变量

1

退出正在运行的 Claude Code

如果 Claude Code 已经启动,先退出当前进程。环境变量需要在启动前设置,启动后再设置通常不会影响已经运行的进程。
2

在同一个终端执行 export

在准备启动 Claude Code 的终端里执行:
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
3

重新启动 Claude Code

在同一个终端进入项目目录并启动:
claude
如果 400 错误消失,说明问题大概率与 Claude Code 实验性 Beta 请求字段和 AWS Claude / Bedrock 通道兼容有关。

推荐做法:写入 settings.json

为了避免每次打开终端都重新设置,建议把环境变量写入 ~/.claude/settings.json
{
  "env": {
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}
如果你已经在 ~/.claude/settings.json 里配置了老张API地址、密钥和模型,只需要把这一项合并到现有 env 中,不要删除原来的配置:
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.laozhang.ai",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的老张API密钥",
    "ANTHROPIC_MODEL": "claude-sonnet-4-6",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}
不要把包含完整 ANTHROPIC_AUTH_TOKEN、API Key 或 AccessToken 的 settings.json 截图发到公开渠道。需要给客服定位时,请只提供打码后的配置和完整错误信息。

为什么这个设置能解决 400

Claude Code 的部分版本可能会向请求里加入实验性 Beta 字段。AWS Claude 官方通道或 Bedrock 相关通道通常会严格校验请求体,遇到不接受的额外字段时,就可能返回:
  • 400 ValidationException
  • Extra inputs are not permitted
  • cache_control.scope 相关错误
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 的作用是让 Claude Code 不发送这些实验性 Beta 请求字段,使请求结构更接近通道可接受的标准格式。该设置主要解决字段兼容问题,不能替代模型权限、余额、API Key 或模型 ID 的排查。

仍然报错时怎么排查

  1. 确认已经重新打开终端或重新启动 Claude Code。
  2. 确认 ~/.claude/settings.json 中的 env 没有写错层级。
  3. 升级 Claude Code 到当前可用版本后重试。
  4. 检查模型 ID 是否仍在控制台可用列表中。
  5. 确认使用的是老张API密钥,并且令牌分组适合 Claude Code。
  6. 查看调用日志,确认错误是在请求校验阶段、模型权限阶段,还是余额/额度阶段。

需要联系客服时提供什么

如果关闭实验性 Beta 字段后仍然无法解决,请提供以下信息:
  • 账号邮箱或用户名
  • Claude Code 版本
  • 操作系统和终端类型
  • 使用的模型 ID
  • 是否使用 AWS Claude 官方通道
  • 完整错误信息,尤其是 ValidationException 后面的字段名
  • 老张API控制台调用日志中的请求时间、状态和 Request ID
  • 打码后的 ~/.claude/settings.json,不要包含完整 API Key 或 AccessToken

相关问题