/resume command reports 'No conversations found' despite conversations existing on disk

Status Open
Maintainer reply None cached
Activity 11 comments · opened Jan 22, 2026

Bug Description

The /resume command consistently reports "No conversations found to resume" even immediately after exiting a conversation, despite conversation files being properly saved to disk.

Environment

  • OS: Linux (Ubuntu on Azure VM)
  • Claude Code Version: Latest (installed via npm)
  • Shell: zsh

Steps to Reproduce

  1. Start a Claude Code session in a project directory
  2. Have a conversation (ask a question, get a response)
  3. Exit the session (Ctrl+C or /exit)
  4. Immediately run claude again in the same directory
  5. Run /resume
  6. Observe: "No conversations found to resume"

Expected Behavior

/resume should list recent conversations from the current project and allow selecting one to resume.

Actual Behavior

/resume returns "No conversations found to resume"

Evidence

Conversations ARE being saved correctly:

$ ls -lt ~/.claude/projects/-home-chrissun-elser/*.jsonl | head -5
-rw------- 1 user user   34603 Jan 22 06:16 d8a06ba6-d7ea-453e-997e-e67241f23d0f.jsonl
-rw------- 1 user user   60702 Jan 22 06:15 ab6b324d-b413-4460-8915-175414b3de69.jsonl
-rw------- 1 user user   12985 Jan 22 06:05 c23b2ca2-507a-41df-a0be-6e0b4eef965d.jsonl
...

The ~/.claude/history.jsonl file also contains proper entries:

{"display":"example prompt","timestamp":1769062085766,"project":"/home/chrissun/elser","sessionId":"ab6b324d-b413-4460-8915-175414b3de69"}

Workaround

Manually specifying the session ID works:

claude --resume ab6b324d-b413-4460-8915-175414b3de69

Additional Context

  • This issue is reproducible and persistent (not a one-time occurrence)
  • The project directory is /home/chrissun/elser
  • Multiple conversation files exist spanning several days
  • The issue occurs regardless of conversation length or content

View original on GitHub ↗

11 Comments

sunlanchang · 7 months ago

Root Cause Found

After investigation, the root cause has been identified:

The /resume command fails in non-git directories.

The /home/chrissun/elser directory is a parent folder containing multiple git repos (elser-anime-api, elser-task-api, etc.), but it is NOT itself a git repository.

Technical Details

Looking at the bundled source code in cli.js, the /resume command:

  1. Calls sy() function which executes git worktree list --porcelain
  2. When this fails (non-git directory), it returns an empty array
  3. The xa() function that loads sessions has different code paths based on whether worktree detection succeeded
  4. The fallback code path for non-git directories appears to not properly enumerate sessions
$ git status
fatal: not a git repository (or any of the parent directories): .git

Yet conversations ARE being saved:

$ ls ~/.claude/projects/-home-chrissun-elser/*.jsonl | wc -l
34

Workaround

Initialize the parent directory as a git repo:

cd /home/chrissun/elser
git init

Or use the --resume flag with a specific session ID:

claude --resume <session-id>

Suggested Fix

The /resume command should not depend on git worktree detection for finding sessions. Sessions are stored in ~/.claude/projects/<project-path>/ and should be enumerable regardless of whether the project is a git repo.

github-actions[bot] · 7 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/18311
  2. https://github.com/anthropics/claude-code/issues/18619
  3. https://github.com/anthropics/claude-code/issues/5768

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

DocRodge · 7 months ago

I am experiencing this exact same issue over the last 2 days when I never was before. I haven't changed / updated anything.

  • Details: Sessions exist in ~/.claude/projects/ with valid index file, but /resume doesn't find them
  • OS: macOS Darwin 24.4.0
tracymelody · 7 months ago

---
Version Bisect Results

I bisected this issue and found the exact version where the bug was introduced:
┌─────────┬────────────────────────────────────┐
│ Version │ /resume Status │
├─────────┼────────────────────────────────────┤
│ 2.0.76 │ ✅ Works │
├─────────┼────────────────────────────────────┤
│ 2.1.0 │ ✅ Works │
├─────────┼────────────────────────────────────┤
│ 2.1.5 │ ✅ Works │
├─────────┼────────────────────────────────────┤
│ 2.1.6 │ ✅ Works (last good version) │
├─────────┼────────────────────────────────────┤
│ 2.1.7 │ ⚠️ Partial (some sessions missing) │
├─────────┼────────────────────────────────────┤
│ 2.1.9+ │ ❌ Broken │
└─────────┴────────────────────────────────────┘
The bug was introduced in version 2.1.7.

The likely culprit from the release notes:
"Enabled MCP tool search auto mode by default for all users."

Workaround

npm install -g @anthropic-ai/claude-code@2.1.6

---

sivamani121 · 7 months ago

I am facing the same issue in my case my dir is git repo only please fix this @claude

dsconyers · 6 months ago

Additional data point from Windows with git worktrees:

I'm experiencing this same issue, but my situation differs from the original report - I am in a valid git repository.

Environment:

  • OS: Windows 11 x64
  • Claude Code: v2.1.31 (currently), initially saw issue on v2.1.30
  • Terminals tested: Warp v0.2026.01.28.08.14.stable_04, Windows Command Prompt
  • Directories tested: Main git repo AND a git worktree (issue occurs in both)
  • Sessions on disk: 204 .jsonl files in ~/.claude/projects/<project>/

Timeline:

  • Upgraded from v2.1.29 → v2.1.30 around Feb 3, 1:43 PM ET (based on session file timestamps)
  • Issue first noticed: Feb 3, ~9 PM ET
  • /resume was working fine on v2.1.29

What I tried:

  1. /resume from actual project directory → "Resume Session" picker appears but shows no sessions (just "current worktree" label and keyboard shortcuts)
  2. Keyboard shortcuts in the picker:
  • Ctrl+A (show all projects): Flashes something briefly, then returns to empty picker
  • Ctrl+B (toggle branch): No visible effect, picker remains empty
  • Ctrl+W (show all worktrees): No visible effect
  1. claude --resume <session-id> with explicit session ID → WORKS ✅

Reproduced in both terminals (Warp and Windows Command Prompt) and both repo types (main repo and worktree), so this is not a terminal-specific or worktree-specific
issue.

Key finding: The session files are valid and resumable. The bug is specifically in the picker UI's session enumeration/display logic, not in session storage or the
resume functionality itself.

Workaround confirmed: Manually get session IDs from ~/.claude/projects/<project-path>/*.jsonl and use:
claude --resume <session-id>

This suggests the issue may be related to how the picker enumerates sessions, possibly in the worktree/branch filtering logic, rather than missing session data.

23rdletter · 6 months ago

Figured it out with Claude's help. Couldn't not update to 2.1.32 with Opus 4.6 out lol. If you recently added a worktree and /resume broke with no explanation, this is probably why.

Root cause confirmed: git worktree list with multiple worktrees breaks /resume

Environment: Windows 11, VS Code integrated terminal, Claude Code 2.1.x (latest)

Diagnosis:
/resume internally calls git worktree list --porcelain to resolve the current project. When the repository has multiple worktrees, the session lookup silently fails and returns "No conversations found to resume" — even though the sessions exist on disk and are visible in the startup header's "recent activity" hint.

Reproduction:

  1. Have a git repo with at least one additional worktree (git worktree add ...)
  2. Start claude in VS Code integrated terminal from the main worktree
  3. Run /resume → "No conversations found to resume"
  4. Note that the Claude startup header does show recent session activity (proving sessions exist)
  5. Run git worktree remove <path> to deregister the extra worktree
  6. Start a new claude session → /resume works correctly
  7. Re-add the worktree → /resume breaks again

Evidence:

  • 234 .jsonl session files exist on disk, 163 indexed in sessions-index.json
  • All indexed sessions have the correct projectPath
  • git worktree list --porcelain returns two entries; removing the second fixes /resume
  • claude --continue and claude --resume <id> work fine (they bypass the worktree-based lookup)
  • The VS Code extension's session panel also works fine (separate code path)

Suggested fix: The project-path resolution in the /resume slash command should either:

  1. Match cwd against the worktree list and use the matching entry (rather than failing when multiple entries exist), or
  2. Fall back to git rev-parse --show-toplevel which correctly returns the current worktree's root regardless of how many worktrees exist

Workaround: Use claude --continue or claude --resume <session-id> instead of /resume, or temporarily remove extra worktrees with git worktree remove <path>.

imanoel01 · 6 months ago

Experiencing the same issue on Windows with Claude Code v2.1.37. Sessions .jsonl files exist in ~/.claude/projects/ but --resume says "No conversations found to resume." This affects both regular repos and git worktree directories.

solomangames · 6 months ago

This issue can also cause /resume to show conversations from the wrong worktree (not just "no conversations")

chrisvaillancourt · 5 months ago

If you're hitting this, check ~/.claude/settings.json for "cleanupPeriodDays": 0. That value stops .jsonl transcript files from being written — you'll see session directories with nothing in them. The schema says 0 means "disable cleanup," but the code treats it as "don't write transcripts." Root cause tracked in #23710.

michael-wojcik · 5 months ago

Hitting this on v2.1.81 (Linux/Codespaces as well as macOS). Did a bunch of digging and filed #38340 with the full details.

The main thing I found: I created a valid .jsonl session file by hand, dropped it in the project directory, and the picker completely ignored it. Ran strace and confirmed there are no directory reads on the project path during /resume at all. So the stat-based scanning from v2.1.30 doesn't seem to be working.

Also tried removing git worktrees, renaming subagent directories, checking metadata flags, file sizes, content format. None of it mattered. The picker just doesn't look at the filesystem. Direct resume by ID works fine though.

This is particularly painful as an Agent Teams user since all my real sessions are invisible and only old trivial ones show up.