You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When resuming a session, Claude Code writes file-history-snapshot entries whose messageId values collide with existing message uuid values in the JSONL file. This causes parentUuid chain traversal to break, making a significant portion of conversation history unreachable after resume.
Evidence
Analyzed the JSONL file of the resumed session with a diagnostic script:
Metric
Value
Total entries
330
messageId/uuid collisions
34
Broken parentUuid refs
0
Entries with uuid
251
Reachable from last entry
190 (75%)
Unreachable (lost)
61 (25%)
Collision pattern
Line 3: type=user, uuid=842f0bfe-2c1e-44c0-8655-74ff68c02903
...
Line 217: type=file-history-snapshot, messageId=842f0bfe-2c1e-44c0-8655-74ff68c02903 ← COLLISION
Lines 217-228 contain 12 consecutive file-history-snapshot entries, all with messageId values that duplicate earlier message uuid values. These appear to have been written during the resume operation.
Impact
Subagent summary output disappears — messages that were visible during the live session become unreachable after resume
25% of conversation history lost — only 75% of messages are reachable via parentUuid chain traversal from the last entry
Start a conversation in Claude Code (VS Code extension)
Use the Agent tool (subagent) during the conversation — observe the summary output is displayed
End the session
Resume the session
The subagent summary output is missing — both from the UI and from Claude's own context
Root Cause Analysis
The file-history-snapshot entries written during resume reuse the uuid of the original messages as their messageId. When the parentUuid chain is traversed, these collisions create ambiguity — the traversal can jump to a snapshot node instead of the real message node, breaking the chain and orphaning downstream messages.
Environment
Claude Code running in VS Code extension
Model: claude-opus-4-6 (1M context)
Platform: Linux
Context usage at time of issue: 7% (71.7k / 1000k) — well below compaction threshold
Bug Description
When resuming a session, Claude Code writes
file-history-snapshotentries whosemessageIdvalues collide with existing messageuuidvalues in the JSONL file. This causesparentUuidchain traversal to break, making a significant portion of conversation history unreachable after resume.Evidence
Analyzed the JSONL file of the resumed session with a diagnostic script:
Collision pattern
Lines 217-228 contain 12 consecutive
file-history-snapshotentries, all withmessageIdvalues that duplicate earlier messageuuidvalues. These appear to have been written during the resume operation.Impact
Steps to Reproduce
Root Cause Analysis
The
file-history-snapshotentries written during resume reuse theuuidof the original messages as theirmessageId. When the parentUuid chain is traversed, these collisions create ambiguity — the traversal can jump to a snapshot node instead of the real message node, breaking the chain and orphaning downstream messages.Environment
Diagnostic Script
Related Issues