跳转到内容

报错原文索引

约 6 分钟 难度:新手 动手章

unsupported_country_region_territory

真实原因不是「你在的地区不能用」这么简单。详见 接入 DeepSeek 后端

MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry

JSON 配置里写了 url 但没写 type。Claude Code 把没有 type 的条目当 stdio 服务器处理。加上 type 字段即可。

command: expected string, received undefined

这是上一条报错在 v2.1.202 之前的措辞。看起来像是 command 字段的问题,实际是缺 type

✘ Failed to connectclaude mcp list 状态)

配了 headers.Authorization 而服务端拒绝这个头时,Claude Code 报连接失败且不会回退到 OAuth。也可能是环境变量没展开——同一个输出里会有缺变量警告,把字面量 ${API_KEY} 当 token 发出去,服务端返回 401。

⏸ Pending approvalclaude mcp list 状态)

.mcp.json 里的服务器需要你批准。交互式跑一次 claude 接受信任对话框。提交在项目 .claude/settings.json 里的 enableAllProjectMcpServers 在未信任的文件夹里被忽略。

! Needs authenticationclaude mcp list 状态)

/mcp 面板或 claude mcp login <name> 走 OAuth。

以上全部详见 接 MCP 服务器

Subagent spawn limit reached

会话累计 subagent 数达到上限(默认 200,含已完成的)。/clear 重置计数,或调 CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION

Concurrent subagent limit reached

同时运行的 subagent 数达到上限(默认 20)。等运行数降下来,或调 CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS

这两个是不同的限额,错误信息相似但对应的变量不同。详见 subagent

Budget limit reached

--max-budget-usd 的上限到了。subagent 的花费计入这个上限,且仍在运行的后台 subagent 会被停止。详见 放进脚本和 CI

Did you mean claude update?

子命令拼错时 Claude Code 建议最接近的匹配并退出,不启动会话。

这一类比报错更难查,因为没有任何输出提示你出了问题。

现象原因
settings.json 里某个 key 完全没作用那个 key 只认 ~/.claude.json(如 diffToolautoConnectIde)。见配置优先级
"defaultMode": "auto" 不生效且不报错项目层和 local 层的 auto 值被有意忽略,要写在 ~/.claude/settings.json。见权限模式
某一层设置整个没加载那个文件 JSON 语法坏了。/statusSetting sources 里不会出现它,用 claude doctor 看解析错误
项目层 deny 规则没「覆盖」用户层数组值是跨层合并的,不是覆盖。实际拦截范围是并集
hook 完全不触发针对 mcp__<server>__ 写的 matcher 对插件捆绑的 MCP 服务器不匹配,那些是 mcp__plugin_<plugin>_<server>__
hook 脚本没拦住任何东西macOS / Linux 上忘了 chmod +x。没有执行权限的 hook 是失败而不是拦截
skill 的 /name 能用但 Claude 从不自动调用frontmatter YAML 坏了。Claude Code 加载正文但元数据为空,所以没有描述可匹配。用 --debug 看解析错误
skill 在自动补全里不出现它在启动目录下面的嵌套 .claude/skills/,Claude 碰过那个目录的文件之后才可用
改了 subagent 定义没生效同一目录树下两个文件声明了同一个 name,加载哪个取决于文件系统读取顺序。/doctor 会报告
subagent 缺了它该有的工具后台运行的 subagent 内置工具集被二次收窄,移除时不报错。设 background: false 保留完整工具集。见subagent
${CLAUDE_SKILL_DIR} 的 allow 规则永远匹配不上需要 v2.1.129 或更高版本,旧版本上保持字面字符串
--json-schema 给了无效 schema 却拿到非结构化输出v2.1.205 之前不报错。升级后会直接报错退出
.claude/rules/ 里某条规则从不加载paths 里有无法解析的 glob(比如未转义的 [)。见CLAUDE.md 上下文工程
Read 工具对一批文件莫名报错v2.1.207 之前,rules 里一个无效 glob 会让该规则求值过的每个文件都失败
权限比预期宽可能有两份 settings.local.json(v2.1.211 位置变过),两份里的权限规则都生效
claude daemon status 变成了一句提示词claude 被别名成带 --dangerously-skip-permissions,且版本低于 v2.1.199
文档提到的标志报「未知参数」先确认版本。claude --help 不列出全部标志,所以不在 --help 里不代表不可用

不确定问题在哪一层时:

  1. claude doctor —— 安装健康度和设置文件解析错误,不启动会话
  2. /status —— 看 Setting sources 确认哪些层真的加载了
  3. /context —— 看上下文里什么在占空间,确认 CLAUDE.md 和 skill 列表加载了
  4. /doctor —— 会话内检查,能给出精简建议
  5. claude --debug--debug-file <path> —— 带类别过滤,如 --debug "api,hooks"
  6. claude --safe-mode —— 关掉所有自定义,确认问题是否来自某个配置

第 6 步是二分法的起点:--safe-mode 下问题消失,说明是配置引起的,逐层打开找到那一项。

这一节有错或讲不清? 提个 Issue 直接改文档 请作者催更