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

  1. Run multiple Claude Code sessions over a period of days/weeks
  2. Check ~/.claude/projects/<project>/sessions-index.json — the newest entry will be weeks old
  3. Compare against actual .jsonl session files in the same directory — many more exist than are indexed
  4. claude --resume cannot 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 .jsonl files are still written correctly — the data is there, just not indexed
  • --resume with 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗