Session resume picker shows no sessions - sessions-index.json stops updating
Resolved 💬 7 comments Opened Feb 14, 2026 by kenxle Closed Mar 17, 2026
Bug Description
The session resume picker (claude --resume) shows an empty list despite having 30+ valid session .jsonl files on disk. The root cause is that sessions-index.json stops being updated and becomes stale.
Steps to Reproduce
- Use Claude Code over multiple sessions in a project directory
- At some point,
sessions-index.jsonstops being updated (unclear trigger — may be related to/renameor normal session exit) - Run
claude --resume— the picker opens but shows no sessions (or only very old ones)
Expected Behavior
The resume picker should show all recent sessions.
Actual Behavior
The picker shows nothing. The sessions-index.json file was frozen with only 4 entries from Feb 2nd, while ~30+ session files existed on disk spanning Feb 2–13.
Workaround
Deleting the stale index file forces a rebuild:
rm ~/.claude/projects/<project-path>/sessions-index.json
After deletion, claude --resume works normally again.
Environment
- Claude Code version: 2.1.34
- OS: macOS (Darwin 24.6.0)
- The project directory had merge conflicts (UU status files in git) and worktree diffs applied, though it's unclear if either contributed
Additional Context
- The issue may have been triggered by a
/renamecommand followed by an immediate exit, but the rename itself didn't persist (the session slug remained the auto-generated three-word name) - Session
.jsonlfiles were all intact and readable — only the index was stale
This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗