Sessions index stops updating, breaking --resume
Resolved 💬 3 comments Opened Feb 18, 2026 by piercecohen1 Closed Feb 21, 2026
Bug Description
The sessions-index.json file that --resume relies on stopped being updated around late January / early February 2026. Session JSONL data files continue to be written correctly, but the index is never appended to — making --resume unable to find any recent sessions.
Reproduction
- Run multiple Claude Code sessions over a period of days/weeks
- Check
~/.claude/projects/<project>/sessions-index.json— the newest entry will be weeks old - Compare against actual
.jsonlsession files in the same directory — many more exist than are indexed claude --resumecannot find any sessions created after the index froze
Observed Behavior
- Sessions index freezes at some point and is never updated again, even across new sessions and Claude Code version updates
- Affects all project directories on the machine, not just one
- The issue persists across multiple machines
- Session
.jsonlfiles are still written correctly — the data is there, just not indexed --resumewith an explicit session ID may still work (bypasses index), but the interactive session picker shows nothing recent
Example (anonymized)
On one machine:
- Home project: 569 session files on disk, but index has only 344 entries
- Index last modified: Feb 4 — 279 sessions created after that date are missing
- Other project directories show the same pattern (index frozen late Jan / early Feb)
On another machine:
- Same behavior — index frozen around the same timeframe
- Multiple project directories affected
Environment
- Claude Code version: 2.1.45
- OS: macOS (Apple Silicon)
- Sessions are started both via CLI and via the SDK (
--started-by daemon)
Expected Behavior
The sessions index should be updated every time a new session is created or an existing session is modified, so that --resume can always find recent sessions.
Workaround
Sessions can still be resumed by passing the full session ID directly:
claude --resume <session-uuid>
But this requires manually finding the session UUID from the filesystem, which defeats the purpose of --resume.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗