【Bug已解决】--continue fails / Session not found — Claude Code 会话恢复失败解决方案

发布时间:2026/7/8 0:42:51
【Bug已解决】--continue fails / Session not found — Claude Code 会话恢复失败解决方案 【Bug已解决】--continue fails / Session not found — Claude Code 会话恢复失败解决方案1. 问题描述使用claude --continue或claude --resume恢复之前的会话时终端弹出以下错误Error: No previous session found Unable to continue: no session history available或者Error: Session not found Session ID abc123 does not exist or has been corrupted有时报错为会话文件损坏Error: Failed to load session Session file corrupted: invalid JSON in ~/.claude/sessions/2024-01-15/session-abc123.json这个问题在以下场景中特别常见清理了 ~/.claude/sessions/ 目录后系统崩溃导致会话文件写入不完整从另一台机器复制配置但缺少会话文件会话文件过大或格式损坏多个 Claude Code 版本混用导致格式不兼容# 典型复现过程 $ claude # 使用 1 小时后退出 /exit $ claude --continue Error: No previous session found # 无法恢复刚才的会话2. 原因分析核心原理拆解claude --continue → 查找最近的会话文件 ↓ 会话文件不存在/损坏/格式不兼容 ↓ 无法加载会话历史 ↓ 报错 No previous session found原因分类表原因分类具体表现占比会话文件被清理手动或自动清理了 sessions 目录约 35%会话文件损坏系统崩溃导致 JSON 不完整约 25%版本不兼容旧版会话格式新版无法解析约 20%路径问题HOME 目录变化或软链接约 10%权限问题会话文件属于其他用户约 5%磁盘空间不足写入会话文件时失败约 5%3. 解决方案方案一使用 /recap /clear 代替 --continue最推荐如果 --continue 失败在退出前使用 /recap 保存摘要。# 步骤 1在当前会话中退出前 /recap # 生成会话摘要 # 步骤 2将摘要保存到文件 # Claude Code 会输出摘要内容 # 手动复制到文件或让 Claude 保存 # 步骤 3退出后新会话中引用摘要 /clear 参考之前的工作摘要: [粘贴摘要内容]方案二修复损坏的会话文件# 步骤 1找到会话文件 ls -la ~/.claude/sessions/ # 查看最近的会话文件 # 步骤 2验证 JSON 格式 python3 -m json.tool ~/.claude/sessions/最新日期/session-xxx.json # 如果报错说明 JSON 损坏 # 步骤 3尝试修复 JSON # 如果是截断的 JSON手动补全 # 如果无法修复删除损坏的文件 rm ~/.claude/sessions/最新日期/session-xxx.json # 步骤 4使用 --resume 选择其他会话 claude --resume # 列出可恢复的会话方案三使用 --resume 选择特定会话# 步骤 1列出所有可恢复的会话 claude --resume # 会显示会话列表 # 步骤 2选择一个可用的会话 # 如果最近的会话损坏选择更早的 # 步骤 3如果 --resume 也失败 # 说明所有会话文件都有问题 # 需要开新会话 claude方案四检查会话文件权限和路径# 步骤 1检查 HOME 目录 echo $HOME # 确认是正确的用户目录 # 步骤 2检查会话目录 ls -la ~/.claude/sessions/ # 确认文件存在且属于当前用户 # 步骤 3修复权限 sudo chown -R $(whoami) ~/.claude/sessions/ # 步骤 4检查磁盘空间 df -h ~ # 如果磁盘满会话无法保存方案五手动保存关键上下文# 步骤 1在会话中主动保存关键信息到文件 将我们讨论的架构设计保存到 docs/architecture-decisions.md # 步骤 2退出后在新会话中引用 claude 参考 docs/architecture-decisions.md 继续开发方案六更新 Claude Code 版本# 步骤 1检查版本 claude --version # 步骤 2更新 npm update -g anthropic-ai/claude-code # 步骤 3新版本可能有更好的会话恢复机制 claude --continue4. 各方案对比总结方案适用场景推荐指数难度方案一/recap 代替预防性⭐⭐⭐⭐⭐低方案二修复文件文件损坏⭐⭐⭐⭐中方案三--resume选择其他会话⭐⭐⭐⭐低方案四检查权限权限/路径⭐⭐⭐低方案五保存到文件长期方案⭐⭐⭐⭐⭐低方案六更新版本版本不兼容⭐⭐⭐⭐低5. 常见问题 FAQ5.1 --continue 和 --resume 的区别--continue自动恢复最近的一个会话--resume显示会话列表手动选择恢复哪个5.2 会话文件保存在哪里~/.claude/sessions/YYYY-MM-DD/session-id.json按日期分目录存储。5.3 会话文件保留多久默认不自动清理除非手动删除或配置了自动清理。建议定期清理超过 30 天的旧会话。5.4 为什么退出后会话文件没保存可能是以下原因磁盘空间不足写入失败权限问题Claude Code 异常退出未执行保存逻辑会话太短可能不保存极短会话5.5 能否跨机器恢复会话可以但需要手动复制会话文件# 复制会话文件到新机器 scp -r ~/.claude/sessions/ usernewmachine:~/.claude/sessions/5.6 会话文件太大导致加载缓慢会话文件包含完整的对话历史。如果太大# 检查文件大小 ls -lh ~/.claude/sessions/ # 如果超过 50MB使用 --resume 选择较短的会话 # 或开新会话手动提供关键信息5.7 Docker 中 --continue 失败Docker 容器退出后会话文件丢失。挂载 volume 持久化docker run -v claude-sessions:/root/.claude/sessions node:22 claude --continue5.8 多个终端窗口同时使用 Claude Code每个终端窗口是独立的会话。--continue恢复的是最近退出的会话可能是另一个窗口的。5.9 会话恢复后上下文不完整会话文件可能损坏或截断。使用/context检查恢复后的上下文状态。如果不完整使用/compact重新压缩。5.10 排查清单速查表□ 1. 检查 ~/.claude/sessions/ 是否有会话文件 □ 2. 使用 python3 -m json.tool 验证 JSON 格式 □ 3. 使用 --resume 选择特定会话 □ 4. 检查文件权限和所有者 □ 5. 检查磁盘空间是否充足 □ 6. 更新 Claude Code 版本 □ 7. 使用 /recap 在退出前保存摘要 □ 8. 将关键信息写入文件而非依赖会话恢复 □ 9. Docker 中挂载 volume 持久化会话 □ 10. 定期清理旧会话文件6. 总结根本原因会话恢复失败最常见原因是会话文件被清理35%和文件损坏25%系统崩溃导致 JSON 写入不完整最佳实践不要依赖--continue恢复会话在退出前使用/recap保存摘要或将关键信息写入文件预防措施将重要的架构决策和设计讨论写入项目文件如 docs/ 目录而非仅保存在会话历史中会话管理定期清理超过 30 天的旧会话文件避免~/.claude/sessions/占用过多磁盘空间最佳实践建议养成将关键上下文写入文件的习惯——代码设计决策写入 docs/任务列表写入 TODO.md这样即使会话无法恢复也能快速恢复工作故障排查流程图flowchart TD A[--continue 失败] -- B[检查 ~/.claude/sessions/] B -- C{会话文件存在?} C --|否| D[开新会话] C --|是| E[验证 JSON 格式] E -- F{JSON 完整?} F --|否| G[删除损坏文件] F --|是| H[使用 --resume 选择会话] G -- H H -- I{能恢复某个会话?} I --|是| J[✅ 恢复成功] I --|否| D D -- K[手动提供关键上下文] K -- L[将关键信息写入文件] L -- M[✅ 新会话开始工作] J -- N[使用 /recap 预防下次失败] N -- O[退出前保存摘要] O -- M