常见报错与排查
本页汇总使用 MoaCode(尤其是 Claude Code / Codex CLI)时的常见报错与解决方法。
通用建议
- 使用 CLI 编程智能体前做好代码备份或版本控制
- 改动环境变量后必须重启终端(Windows 无效时重启电脑)
- 大部分「无效令牌」问题源自旧服务商配置残留,见配置残留
认证类
401 无效令牌 / Invalid API Key
常见原因是 IDE 或 MCP 修改了 settings.json,或 Key 未正确写入环境变量。
解决:重新配置三个环境变量:
echo 'export ANTHROPIC_AUTH_TOKEN="你的APIKey"' >> ~/.zshrc
echo 'export ANTHROPIC_API_KEY="你的APIKey"' >> ~/.zshrc
echo 'export ANTHROPIC_BASE_URL="https://moacode.org"' >> ~/.zshrc
source ~/.zshrc# Win + R 输入 sysdm.cpl → 高级 → 环境变量,新建/更新:
# ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY = 你的Key
# ANTHROPIC_BASE_URL = https://moacode.org
# 并删除用户目录 .claude 下的 settings.json,重启终端验证 Key 是否有效:
curl https://moacode.org/api/v1/user/balance -H "X-API-Key: 你的APIKey"Missing API Key / 403 Request not allowed
报错形如 "type":"forbidden","message":"Request not allowed"——同样是环境变量未配置好,按上面的方法重新配置。
若使用的是专用 Key,另需检查:调用的端点/模型是否在该 Key 的授权范围内(渠道与协议要匹配)。
用过其他服务商后报无效令牌
旧服务商的配置残留会覆盖 MoaCode 配置。
解决:
- 删除旧环境变量:
ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN(注意大小写变体都查一遍) - Windows:删除用户目录
.claude下的claude.json及其 backup 文件 - macOS / Linux:编辑
~/.zshrc/~/.bashrc删除相关 export 行 - 重启终端后重新按 Claude Code 接入配置
请求类
400 报错(客户端 beta 特性)
设置环境变量后关闭所有终端重开:
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1API Error 400(请求体问题)
Claude Code 构造的请求本身有问题。依次尝试:按 Esc 后输入 continue 重试 → 修改对话内容 → /compact 压缩上下文 → 重开会话。
413 / 请求体过大
上下文过长。用 /clear 清理会话或重开;IDE 插件自带的大量 prompt 也会占用上下文。
Invalid model name
一般为上游渠道该模型并发不足,稍后重试或切换渠道/模型。
输出被截断 / response exceeded 32000
设置环境变量提高输出上限:
CLAUDE_CODE_MAX_OUTPUT_TOKENS=32000网络类
Connection error
- 先测连通性:
ping moacode.org - 域名通但仍连不上,多为本机代理干扰,清空代理变量:
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXYset HTTP_PROXY=
set HTTPS_PROXY=
set ALL_PROXY=Request timed out
两种情况:
- 网络问题 — 按上面 Connection error 处理
- 上下文过长 —
/clear或重开会话
Overloaded / 500 / 529
上游服务端压力大。稍等重试;开启自动渠道切换可自动降级到备用渠道。也可以到服务状态查看各渠道健康情况。
环境类
No suitable shell found(Windows)
Git 未正确安装。在系统环境变量中新增:
CLAUDE_CODE_GIT_BASH_PATH=C:\Program Files\Git\bin\bash.exe重启终端;仍无效则重装 Git(见 Windows 安装)。
Command timed out after 2m
Claude Code 与本机系统交互超时,与 API 无关。手动在终端执行该命令即可。
余额充足但请求被拒
账单相关常见问题
明明选的是 Opus 5,账单里为什么会出现别的模型?
先说结论:这是正常情况,不是你的问题,也不是系统出错了。
Claude Code 自己会在背地里做几件小事,比如:
- 给你的对话起个名字(就是历史记录里显示的那一行标题)
- 把很长的聊天记录压缩一下,省得占空间
做这些小事的时候,Claude Code 会自己换一个更便宜、更快的模型去处理,不会用你选的 Opus 5。所以账单里多出一些别的模型,是它自己在干活,不是你选错了,也不是被多扣钱。
到底要不要担心?
想亲眼确认一下:
- 打开 moacode.org 登录你的账号
- 进入左侧菜单的 **Usage(用量)**页面
- 在明细记录里按时间找到你怀疑的那一笔,上面会写清楚用的是哪个模型、花了多少钱(详见用量查询)
Claude Desktop 新建对话时为什么会自动调用模型?
同样是正常现象,跟上面是一回事。
Claude Desktop 在你新建一个对话、发出第一条消息之后,会自动调用一个便宜的小模型,帮你给这个对话起个标题(就是左侧对话列表里显示的那行字)。这个标题生成和你实际对话用的模型没关系,是软件自带的功能,关不掉。
- 这笔钱通常很小很小,几乎感觉不到
- 如果你在消费记录里看到一笔莫名其妙的小额调用,大概率就是这个标题生成产生的,不用怀疑账号被盗
客户端更新
# Claude Code(macOS / Linux 需 sudo)
npm install -g @anthropic-ai/claude-code
# 或会话内
claude update
# Codex
npm install -g @openai/codex