`--resume` can't find recent sessions — sessions-index.json not created/updated since January
What happened
I use Claude Code daily across multiple projects (WSL2, CLI). This past week I noticed --resume can't find my most recent sessions. I'd finish a long session (hours of work, hundreds of messages), come back the next day, --resume, and it's not there. Happened multiple times across April 2-6.
The session .jsonl files are on disk — I can see them, they're 10-36MB — but the resume picker doesn't show them. Trying to resume creates empty stub sessions instead of reconnecting.
Root cause
sessions-index.json doesn't exist for my main project:
$ ls ~/.claude/projects/-mnt-g-Workspace-.../sessions-index.json
No such file or directory
Checked other projects on the same machine — some have the file but all are stale from January 2026:
chatbot-3/sessions-index.json Jan 23
obsidian/sessions-index.json Jan 22
projects/sessions-index.json Jan 24
No project has had its index updated since January. Whatever creates/updates this file stopped working.
The specific incident
- April 2-3: Long session (
46e3e7ed, 292 messages, 36MB). Named it "ui-ux-refactor". Experiments, code changes, doc work. - April 3, 15:34: New terminal,
--resume. Session not listed. - Two stub sessions created from the failed resume attempt (
b3603d1f— 1 message, no jsonl;f7b32ba1— 3KB stub). PID file references yet another session ID (f413c0a4) that has no.jsonlanywhere. - April 6: Same problem. The 36MB session is right there on disk but invisible to
--resume.
Workaround: claude --resume 46e3e7ed-5f9b-4e44-b8b8-d7ea580e1290 works if you know the ID.
Scale of the problem
Across all my projects:
- 9 session
.jsonlfiles exist on disk for the main project --resumeshows none of them (no index file)- 8 orphaned session directories exist with
subagents/dirs but no.jsonl— unclear if these were cleaned up or never persisted history.jsonlreferences all sessions correctly — it knows about sessions the picker can't find
No cleanupPeriodDays configured. Never opted into any cleanup.
Environment
- Claude Code 2.1.92
- WSL2 (Linux 6.6.87.2-microsoft-standard-WSL2)
- bash, CLI mode
Related
- #18897 — sessions-index.json not created for all projects
- #25032 — sessions-index.json not updated
- #41458 — cleanupPeriodDays ignored, sessions deleted
The common thread across all of these: sessions-index.json is unreliable. It's not created for all projects, not updated when it does exist, and the resume picker appears to depend on it rather than scanning .jsonl files directly.
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗