Claude Code 故障排查
排查 Claude Code 问题时,应区分安装、认证、配置、权限、外部工具和仓库本身失败,避免把所有异常都归因于提示词。
- 最近核验
- 适用版本
- 适用于 Claude Code 2.1.x。本机使用 2.1.198 检查 CLI 拼写;当前官方文档可能包含更新的 2.1.x 行为。
- 核验方式
- 2026-07-19 对照官方文档、CLI reference 和 changelog。本机检查 version 和 help;doctor、auth、network、provider 和 IDE 结果随机器变化,不写成预先通过。
可复现实践
分离机器、账户、自定义配置和仓库故障
按固定诊断阶梯找到第一个失败层,再修改提示词或重装。
准备
- 准确 symptom、时间、命令、工作目录和第一个可操作错误。
- 允许运行只读诊断并创建临时空目录。
- 计划脱敏用户名、路径、token、repo 名和 debug logs。
执行步骤
识别 executable 和 version
不同 shell 或重复安装可在项目配置介入前解释行为。
步骤 1 command -v claude type -a claude 2>/dev/null || true claude --version分开检查安装与认证
doctor 是只读诊断;auth status 回答另一类问题。
步骤 2 claude doctor claude auth status --text比较 safe mode 和空目录
在同一 shell 中创建唯一空目录;如果无自定义或仓库外问题消失,重装前先查 project settings、hooks、MCP、plugins 或 memory。
步骤 3 DIAGNOSTIC_DIR=$(mktemp -d "${TMPDIR:-/tmp}/claude-diagnostic.XXXXXX") printf '%s\n' "$DIAGNOSTIC_DIR" cd "$DIAGNOSTIC_DIR" claude --safe-mode收集窄范围 debug 证据
只打开相关 categories,写入受控文件,共享前脱敏。
步骤 4 claude --debug "api,hooks" --debug-file ./claude-debug.log
预期结果
把 symptom 归到 executable/install、authentication/provider、customization、repository 或 external-service 层,并得到可复现下一步。
验证
- 只改变一个怀疑层后重复原动作。
- 比较原 repo、safe mode 和空目录行为。
- 记录仍未验证部分,不凭相关性宣称 root cause。
失败处理
Claude 无法启动
使用 shell 级 claude doctor,并在交互命令前检查 PATH。
Safe mode 修复问题
逐类恢复 settings、hooks、MCP、plugins、memory。
两个环境都失败
编辑 repo config 前检查账户/provider 状态、network/TLS 和官方 error reference。
清理或回退
- 脱敏和审查后返回原目录,确认 DIAGNOSTIC_DIR 是刚才打印的 mktemp 路径,只删除该目录。
- 一次只恢复一个配置改动;修复 malformed settings 前保留备份。
边界与不适用场景
- Debug logs 可能包含敏感路径和 request context,不能未脱敏公开。
- doctor 显示 Search OK 不能排除 WSL 跨文件系统性能或搜索结果不完整。
安装和版本检查
确认 CLI 已安装、在 PATH 中可用,并按对应安装方式更新。不同安装渠道的更新行为可能不同。
认证检查
如果会话无法启动,先确认登录状态和账号访问权,再排查项目设置。跳过认证检查会把基础问题误判为工具或模型问题。
认证指南
对比订阅、Console 和 CI token 流程。
阅读指南会话管理
长后台或 Remote Control 工作前续期登录。
阅读指南CI/CD
按与部署凭证相同节奏轮换 setup-token secret。
阅读指南配置加载
当 instructions、permissions、hooks 或 MCP servers 未生效时,应检查当前会话实际加载了什么。常见原因是路径、作用域或配置优先级。
仓库失败
改动后构建或测试失败时,保留失败命令输出,并让 Claude Code 从第一个可操作错误追踪,不要直接重写无关代码。
claude doctor
claude auth status --text
claude --debug "api,hooks"常见故障类别
大多数问题都属于少数几类。按顺序排查,而不是先改提示词。