/resume reports 'No conversations found' in git submodule directories (sessions-index.json not created)
Description
/resume reports "No conversations found to resume" immediately after exiting a conversation. The explicit claude --resume <session-id> command works fine using the ID shown at session exit.
Environment
- Claude Code v2.1.89
- macOS (Darwin 25.4.0)
- Working directory is a git submodule inside a parent monorepo
Steps to Reproduce
cdinto a git submodule directory (a repo nested inside a parent repo)- Start a Claude Code session and do some work
- Exit the session — note the "Resume this session with:
claude --resume <id>" message - Immediately launch
claudeagain from the same directory - Type
/resume
Expected: The previous conversation is listed and resumable.
Actual: "No conversations found to resume"
Root Cause
Session JSONL files are written correctly to the project directory under ~/.claude/projects/:
-rw------- 393637 Apr 3 06:44 711e22af-....jsonl # previous session
-rw------- 195527 Apr 3 06:47 b13f7ea7-....jsonl # current session
However, sessions-index.json does not exist in that project directory. /resume appears to rely on this index to discover sessions, while --resume <id> reads the JSONL directly by ID, bypassing the index.
Other project directories under ~/.claude/projects/ (non-submodule repos) do have a sessions-index.json, though at least one was observed to be empty ({"version":1,"entries":[]}).
Prior Reports
This is a regression of previously reported issues that were auto-closed:
- #29256 — exact same scenario (submodule +
/resumefails), closed for inactivity - #27676 — same root cause (git submodule + worktree path mismatch), incorrectly auto-closed as duplicate of unrelated Windows issue #24515
Also related to the broader sessions-index.json not being populated:
- #22205, #24729, #25032, #19995
Workaround
Use the explicit resume command shown at session exit:
claude --resume <session-id>This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗