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

  1. Use Claude Code over multiple sessions in a project directory
  2. At some point, sessions-index.json stops being updated (unclear trigger — may be related to /rename or normal session exit)
  3. 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 /rename command followed by an immediate exit, but the rename itself didn't persist (the session slug remained the auto-generated three-word name)
  • Session .jsonl files were all intact and readable — only the index was stale

View original on GitHub ↗

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