[BUG] Claude Code v2.x Cannot Resume Sessions Created/Used in v1.x - Version Incompatibility

Resolved 💬 7 comments Opened Dec 6, 2025 by MoorAE Closed Feb 28, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude Code version 2.0.60 cannot read/resume sessions that contain entries from earlier versions. The session files exist and contain valid JSONL data, but /resume [session-id] returns "Session not found" - which is factually incorrect and misleading.

Root Cause Discovered

Sessions that were used across multiple Claude Code versions become mixed-version files:

Lines 1-N:       Version 1.0.119 (Original session start)
Lines N+1:       Version 2.0.5   (After upgrade)
End of file:     Version 2.0.59  (Last working version)

The session worked fine through all these versions until 2.0.60 - which now rejects these mixed-version files entirely, even though Claude Code itself created most of the content.

What Should Happen?

  1. Accurate Error Message: "Session contains entries from incompatible versions" - NOT "Session not found"
  2. Session Migration: Existing sessions should be migrated during version upgrades
  3. Backwards Compatibility: Point releases should not orphan user sessions without warning

Error Messages/Logs

> /resume [session-id]
Session [session-id] was not found.

Meanwhile, the file exists and contains valid data:

$ ls -la ~/.claude/projects/[project]/[session-id].jsonl
-rw-r--r-- 1 user group 541450703 Dec  5 14:10 [session-id].jsonl

$ wc -l ~/.claude/projects/[project]/[session-id].jsonl
46031 lines

Steps to Reproduce

  1. Have an existing Claude Code session used across multiple versions (1.0.x → 2.0.x)
  2. Session works fine through 2.0.59
  3. Update to Claude Code 2.0.60
  4. Attempt /resume [session-id]
  5. Receive "Session not found" despite file existing with valid content

Migration Attempts (All Failed)

Multiple recovery approaches were attempted:

  1. Copy to new session ID → "Session not found"
  2. Patch version strings (1,206 replacements) → "Session not found"
  3. Patch session IDs (45,042 replacements) → "Session not found"
  4. Prepend v2 summary header → "Session not found"

Conclusion: Claude Code 2.0.60 uses an undocumented validation mechanism beyond file existence and format. There is no user-accessible migration path.

Claude Model

Claude Opus 4.5 (claude-opus-4-5-20251101)

Is this a regression?

Yes - Sessions worked fine through version 2.0.59. I was working on an MCP server fix and had to restart Claude Code. An update to 2.0.60 occurred during that restart - and that's when the session broke. The session was actively being used and functional immediately before the restart.

Downgrade Attempts Blocked

I attempted to downgrade the VS Code extension 3 times to recover session compatibility. Each time, when Claude Code loaded, it auto-forced the latest version - even though I have auto-update disabled in VS Code settings.

This means:

  • Users cannot roll back to recover their sessions
  • The "auto-update off" setting is being ignored
  • Once the breaking update hits, there's no escape

Last Working Version

2.0.59 - Session with mixed version entries (1.0.119 through 2.0.59) worked fine until 2.0.60 update

Claude Code Version

2.0.60 (Claude Code) - This is the version that broke session compatibility

Platform

Direct API

Operating System

Windows (CYGWIN_NT-10.0-22631)

Terminal/Shell

Cygwin / Git Bash

Additional Information

Critical Issue: 2.0.60 Introduced Breaking Change

The session file contains entries spanning versions 1.0.119 → 2.0.5 → 2.0.59, and worked fine through all of them. Version 2.0.60 specifically introduced stricter validation that rejects these previously-valid session files.

User Impact

  • Months of accumulated context lost (session started September 2025, broke December 2025)
  • No warning before upgrade
  • No migration tool provided
  • No documentation of this breaking change
  • Error message actively misleads users about the problem
  • Cannot downgrade to recover - Claude forces latest version even with auto-update off

Requested Fixes

Immediate:

  1. Fix error message to explain version incompatibility
  2. Provide session migration tool
  3. Respect user's auto-update settings - allow downgrade
  4. Revert the breaking validation change in 2.0.60 or provide migration

Long-term:

  1. Auto-migrate sessions on version upgrade
  2. Maintain backwards compatibility for session files
  3. Warn users before breaking changes

Pattern of Session Issues

This is part of an ongoing pattern of session reliability issues in Claude Code that need addressing for users with long-term, complex projects.

View original on GitHub ↗

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