不掺水的中转站 进入主站

Claude Code 报错 401 Invalid token 怎么解决

Claude Code 提示 Failed to authenticate. API Error: 401 Invalid token 的原因和排查步骤,以及地址多写 /v1 时看起来像模型报错的情况。

报错长什么样

Failed to authenticate. API Error: 401 Invalid token

这说明请求已经到达服务,但 Key 没有通过校验。地址本身是对的。

按这个顺序排查

  1. 看 Key 有没有复制完整:常见问题是前后多了空格或换行,或者只复制了一部分。
  2. 看 Key 还能不能用:打开控制台的「令牌」页面,确认它没有被禁用、过期或用完额度。
  3. 看环境变量是否生效:在启动 Claude Code 的同一个终端里运行下面的命令,确认有输出。
printenv ANTHROPIC_BASE_URL
printenv ANTHROPIC_AUTH_TOKEN | cut -c1-6

第二条只显示前 6 位,避免把完整 Key 留在屏幕或日志里。

  1. 看有没有别的配置覆盖:检查 ~/.claude/settings.json 的 env,以及 ANTHROPIC_API_KEY 这个环境变量。如果里面还是旧 Key,先删掉再重开终端。
  2. 绕开 Claude Code 测一次:用下面的命令直接请求接口。如果这里也返回 Invalid token,问题就在 Key 本身。
curl https://aitechflux.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-haiku-5-5","max_tokens":16,"messages":[{"role":"user","content":"hi"}]}'

另一个容易认错的报错

如果把地址写成了 https://aitechflux.com/v1,Claude Code 提示的是模型有问题:

There's an issue with the selected model (claude-haiku-5-5). It may not exist or you may not have access to it.

实际原因是路径重复了。Claude Code 会自己拼接 /v1/messages,所以地址不要带 /v1:

export ANTHROPIC_BASE_URL="https://aitechflux.com"