`--resume` fails with "No conversation found" despite valid session JSONL on disk

Resolved 💬 2 comments Opened Mar 31, 2026 by rohanvirmani-tg Closed May 6, 2026

Bug Description

claude --resume <session-id> and claude --resume <slug> both fail with "No conversation found with session ID: ..." even though the session JSONL file exists on disk, is valid JSON, and is 25MB / 7,883 lines.

Environment

  • Claude Code version: 2.1.81
  • Session created with: 2.1.78
  • OS: macOS (Darwin 24.6.0)
  • Shell: zsh

Steps to Reproduce

  1. Had a long-running session (2,092 user messages, 25MB JSONL file) created with v2.1.78
  2. Session has custom title set via /name ("replace-[redacted]-[redacted]-[redacted]"), slug is "woolly-wiggling-lecun"
  3. Upgraded to v2.1.81
  4. claude --resume e4822f97-6f89-494b-ad23-92fd70541db4 → "No conversation found"
  5. claude --resume woolly-wiggling-lecun → appears in interactive picker but fails to load

Root Cause Investigation

  • The JSONL file at ~/.claude/projects/<project>/<session-id>.jsonl is valid (every line parses as JSON)
  • sessions-index.json had stopped being updated — only contained 7 entries from early February despite dozens of sessions created since
  • Manually adding the session entry to sessions-index.json made it appear in the interactive picker, but selecting it still failed to load the conversation
  • The session directory (<session-id>/subagents/, <session-id>/tool-results/) also exists and is intact

Expected Behavior

--resume should find and load the session by ID or slug.

Actual Behavior

"No conversation found with session ID: e4822f97-6f89-494b-ad23-92fd70541db4"

Additional Context

  • This appears related to #25032, #26485, and #26519 (sessions-index.json stops being updated)
  • However, even after manually fixing the index, the session cannot be loaded — suggesting the bug has two layers: (1) index stops updating, and (2) loading mechanism fails independently of the index
  • The session file's first message has an orphaned parentUuid (points to a UUID not in the file), which may indicate it was a continuation of another session — this might confuse the loader

View original on GitHub ↗

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