[BUG] Claude Code v2.x Cannot Resume Sessions Created/Used in v1.x - Version Incompatibility
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?
- Accurate Error Message: "Session contains entries from incompatible versions" - NOT "Session not found"
- Session Migration: Existing sessions should be migrated during version upgrades
- 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
- Have an existing Claude Code session used across multiple versions (1.0.x → 2.0.x)
- Session works fine through 2.0.59
- Update to Claude Code 2.0.60
- Attempt
/resume [session-id] - Receive "Session not found" despite file existing with valid content
Migration Attempts (All Failed)
Multiple recovery approaches were attempted:
- Copy to new session ID → "Session not found"
- Patch version strings (1,206 replacements) → "Session not found"
- Patch session IDs (45,042 replacements) → "Session not found"
- 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:
- Fix error message to explain version incompatibility
- Provide session migration tool
- Respect user's auto-update settings - allow downgrade
- Revert the breaking validation change in 2.0.60 or provide migration
Long-term:
- Auto-migrate sessions on version upgrade
- Maintain backwards compatibility for session files
- 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.
This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗