Solo Stack Kits Directory
Claude Code workflows & skills for solo consultants and freelancers

← Blog · 2026-11-02

Claude Code Resume Not Working? --continue, --resume and /resume: 14 Causes and Fixes

60-second test: run claude --resume (no arguments) and press Ctrl+A. The session shows up now means it was stored under another project or worktree (causes 1 to 3). It's still missing points to a -p, SDK or /loop session, or a transcript that's gone (causes 4 to 7). It's listed but won't open is causes 8 to 10. It opens but behaves differently is causes 11 to 14.

Claude Code saves every conversation as you work, as a local transcript file at ~/.claude/projects/<project>/<session-id>.jsonl, where <project> is your working directory path with non-alphanumeric characters replaced by -. That one detail explains most resume problems: sessions are per machine and per project folder.

Command What it does
claude --continue Reopens the most recent session in the current directory
claude --resume Opens the session picker
claude --resume <name> Resumes a named session directly
claude --resume <session-id> Resumes that session, from any directory
/resume Switches sessions from inside a running one

Session not found: 7 causes

  1. You're in a different folder. claude --continue and the picker start from the current project, so a session you started in ~/work/app won't show up when you launch from ~/work/app/src or another clone. cd back to the folder you started in, or open the picker and press Ctrl+A to list sessions from every project on the machine. Picking a session from an unrelated project copies a cd and resume command to your clipboard rather than opening it in the wrong place.
  2. It's in another git worktree. By default the picker shows sessions from the current worktree only. Press Ctrl+W to widen it to all worktrees of the repository (the key is only shown in multi-worktree repos). Ctrl+B does the opposite and filters to the current branch, so if the list looks short, check you didn't leave that filter on.
  3. You moved the session with /cd. Moving a session with /cd relocates it to the new directory's project storage, so it now appears in that directory's picker instead. claude --resume <session-id> works from anywhere.
  4. It was a claude -p, Agent SDK or /loop session. Claude Code leaves sessions created with claude -p or the Agent SDK out of the picker and out of claude --continue, and the same goes for sessions whose first prompt was a /loop command. Resume one with its ID: claude --resume <session-id>. For a script, claude -p --continue does include -p, SDK and /loop sessions, and the ID is the session_id field in --output-format json output.
  5. No conversation found with session ID. Check for a typo first. Claude Code searches the current project and its worktrees, then every other project, but it only resolves the ID when exactly one other project holds it, so a hand-copied duplicate under ~/.claude/projects also produces this error. Before v2.1.223 the lookup stopped at the current project, so on an older version resume from the folder the session last worked in, or run claude update.
  6. The transcript was deleted or never written. Claude Code deletes transcripts older than cleanupPeriodDays, 30 days by default, so a month-old session is usually gone; raise the setting in settings.json if you need longer. Nothing is saved at all when CLAUDE_CODE_SKIP_PROMPT_HISTORY is set, or for a claude -p run started with --no-session-persistence. claude purge also removes a project's transcripts.
  7. It ran on another machine or under another config directory. Transcripts are local, so a session from your laptop isn't on your desktop or in a dev container. If you launch with a different CLAUDE_CONFIG_DIR (some wrappers and tenant setups do), sessions live under that directory instead of ~/.claude, so launch with the same value to see them.

Session listed but won't open: 3 causes

  1. Failed to resume the conversation. Claude Code couldn't read the saved transcript, so it exits with code 1 and prints a claude --resume <session-id> command to retry. Run it once. On a version before v2.1.285, update with claude update and try again, since older versions fail on transcript entries they can't read. If it still fails, start a new session; inside a running session, a failed /resume leaves your current conversation running.
  2. The name doesn't resolve. Only a name you set (claude -n, /rename, or Ctrl+R in the picker) or the AI-generated title works as a resume handle. The default display name like my-app-3f that agent view shows is not one, so claude --resume my-app-3f finds nothing. If a name matches several sessions, claude --resume <name> opens the picker pre-filtered while /resume <name> reports an error; run /resume with no argument and pick. A claude -p run started from a shell gets no generated title.
  3. --continue says the conversation is running in the background. If your most recent conversation was moved to the background and is still running, claude --continue exits with Your most recent conversation is running in the background and its ID. Open it from claude agents (or claude attach <id>), or run claude --resume to pick another. Finished background sessions open with --continue on v2.1.257 or later. On Windows, an EBADF error while reading the transcript usually means security or endpoint software is intercepting reads; exclude %USERPROFILE%\.claude\projects from it.

Resumed, but something's different: 4 causes

  1. MCP servers, plugins or extra directories are missing. Resuming doesn't restore every launch flag. If the session depended on --mcp-config, --settings, --plugin-dir, --fallback-model or --add-dir, pass them again; folders added mid-session with /add-dir aren't restored either. Settings in settings.json and settings.local.json are re-read at launch, so anything kept there doesn't need repeating.
  2. The permission mode changed. claude --continue or claude --resume <id> from a terminal restores the session's mode, with exceptions: a session that ended in bypassPermissions comes back in the mode a new session would start in, and auto returns only if your account still qualifies. Sessions picked from the picker, and claude -p --resume, start in the default mode for that command line (plan mode can carry over). /resume inside a session keeps your current mode. Pass --permission-mode to set it explicitly.
  3. The custom agent is gone. A session started with --agent resumes as that agent only if Claude Code finds it, first in the session's original (trusted) folder, then where you resume. Otherwise you get This session was running agent '<name>', which is no longer available and it continues with default tools, so the agent's tool restrictions no longer apply. Re-create .claude/agents/<name>.md or pass --agent <name>.
  4. Claude "forgot" part of the conversation, or asks before resuming. A compacted session opens at a Conversation compacted row and continues from the summary, not the summarized messages. Tools that were mid-run when the old process ended aren't rerun, and background Bash and monitor tasks aren't restored. On Pro, Max and Ultra plans, a long conversation resumed after a break can show a "Resume this conversation?" dialog estimating the share of your 5-hour limit it will use; choose Start a new conversation if the next task doesn't need the history. Also don't resume the same session in two terminals without --fork-session: messages from both interleave into one transcript.

Make sessions easy to find again

If you want to undo Claude's edits rather than reopen a chat, see Claude Code rewind not working. For scripted runs that resume by session ID, see Claude Code headless mode not working, and if resumed sessions fill up quickly, Claude Code context filling up fast has fixes.


Facts on this page come from Anthropic's Claude Code docs on managing sessions, the error reference and the .claude directory. This guide isn't affiliated with Anthropic.

Made by Solo Stack Kits. Long sessions go better with guardrails. Start with our free Claude Code safety hooks, or get the Claude Code Power Config Pack with permission presets and 8 tested safety hooks, $6 with the launch code while it lasts.

Want it set up already? Claude Code Power Config Pack

Fixed it? Skip the next one with a tested Claude Code setup you can drop into any repo.

One install command that backs up your settings first. Checked against the official Claude Code docs. MIT licensed.

Launch price: $6 instead of $12 (code LAUNCH50, first 25 buyers, until Nov 10, 2026).

Get the Config Pack: $6 launch priceOr try 2 of the hooks free

Free on Gumroad: block-dangerous-bash and protect-secrets with a settings snippet. Enter $0; Gumroad asks for an email to deliver the zip.

Prefer to build it yourself? Use the free Claude Code tools, no sign-up.