`--resume` can't find recent sessions — sessions-index.json not created/updated since January

Resolved 💬 6 comments Opened Apr 6, 2026 by NasonZ Closed May 20, 2026

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 .jsonl anywhere.
  • 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 .jsonl files exist on disk for the main project
  • --resume shows 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.jsonl references 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.

View original on GitHub ↗

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