[BUG] All prior sessions lost after macOS reboot — session JSONL files missing, `--resume` shows nothing
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
After a macOS reboot, claude --resume shows "No conversations found to resume" even though multiple prior sessions existed and were successfully resumable before the reboot.
Investigation shows the root cause: the session JSONL files in ~/.claude/projects/<project>/ are missing. The session directories (subdirectories containing subagent transcripts) still exist, but the parent-level <session-id>.jsonl files that --resume uses to list sessions are gone. This affects all sessions except the single most recently active session per project.
The pattern is consistent across two projects:
Project 1 (~/.claude/projects/-Users-luyiming-Projects-cc-things/):
- 4 session directories from Feb 18–24 are present, each with intact subagent JSONLs
- The corresponding session JSONL files (e.g. 250f18bc-...jsonl) are absent
- sessions-index.json is also missing for this project
- Only today's session (6c5ef471-...jsonl) exists as a file
Project 2 (~/.claude/projects/-Users-luyiming-Projects-edinet-agentic/):
- Same pattern: 4+ session directories with no parent JSONL files
- sessions-index.json present but references a JSONL that no longer exists
- Only the most recent session JSONL survives
A Claude Code auto-update from 2.1.114 → 2.1.123 was logged at 2026-04-30T00:25 (several hours before the reboot). The session directories show mtime of 13:49–13:50 on the day of the reboot, suggesting Claude Code touched them during post-reboot startup.
What Should Happen?
Session JSONL files should persist indefinitely across reboots and version updates. claude --resume should list all prior sessions as it did before the reboot.
Error Messages/Logs
$ claude --resume
No conversations found to resume
$ ls ~/.claude/projects/-Users-luyiming-Projects-cc-things/
250f18bc-cacd-4d8c-bd8e-37d54e8f9252/ ← dir only, JSONL missing
3df75dec-2782-4598-9687-ce3a4c27afb7/ ← dir only, JSONL missing
6c5ef471-da4d-43fc-b5fa-bcd04e0f70a0.jsonl ← only surviving session file
c93d1ac2-5c77-4379-9015-0b738634c6a8/ ← dir only, JSONL missing
d94e9a0f-66b7-442a-86d9-13fa60070eb2/ ← dir only, JSONL missing
Debug log excerpt (2026-04-30T00:25, pre-reboot):
2026-04-30T00:25:56.514Z [ERROR] ENOENT: no such file or directory, open '/Library/Application Support/ClaudeCode/managed-settings.json'
2026-04-30T00:25:56.773Z [DEBUG] Checking for native installer update to version 2.1.123
2026-04-30T00:25:56.776Z [DEBUG] Version 2.1.123 already installed, updating symlink
2026-04-30T00:25:56.791Z [ERROR] NON-FATAL: Lock acquisition failed for ...versions/2.1.114 (expected in multi-process scenarios)
2026-04-30T00:25:56.791Z [DEBUG] Skipping deletion of 2.1.114 - locked by another process
Steps to Reproduce
- Use Claude Code across multiple sessions in one or more projects over several weeks
- Confirm
claude --resumeworks and lists sessions (it did for me before this reboot) - Reboot the Mac
- Run
claude --resumein any project directory - Observe "No conversations found to resume"
- Inspect ~/.claude/projects/<project>/ — session subdirectories exist but their parent .jsonl files are missing
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unknown exact version; was working immediately before the 2.1.114→2.1.123 auto-update on Apr 30.
Claude Code Version
2.1.123
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
- The auto-update from 2.1.114 → 2.1.123 and the reboot both occurred on the same day (Apr 30)
- The version update happened ~13 hours before the reboot
- Session directories were modified at 13:49–13:50 on the day of reboot (post-reboot startup scan)
- Subagent JSONL files inside the session directories are fully intact — data loss is specifically the parent session JSONL files
- The
sessions-index.jsonis missing entirely from one project; present-but-stale in another - macOS APFS local snapshots confirm reboot at 13:37 local time
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗