[BUG] Desktop (Windows 11): conversation silently duplicated into 15+ sessions; one typed message delivered to multiple sessions; parallel copies independently edited the same file

Resolved 💬 2 comments Opened Jun 12, 2026 by wonjoongkim-dev Closed Jun 16, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Environment: Claude Code desktop app, Windows 11 Home (10.0.26200). Non-developer user, single project directory. Evidence comes from local session transcripts (~/.claude/projects/<project>/*.jsonl); I can provide excerpts privately on request.

Summary: I worked in what I believed was one conversation. I never knowingly forked. Later I found sessions in the sidebar I didn't create, work appeared "already done" when I asked for it, and the state became chaotic (wrong work, reverts, unfinished tasks).

Evidence (2026-06-12, local transcripts):

  1. Mass duplication: 20 main-session .jsonl files modified that day; 15+ nearly identical in size (28-29 MB), clustered within ~2.5 hours - the same conversation duplicated many times.
  2. One typed message, multiple deliveries: my instruction (sent once, 04:07:20.737Z) appears with the identical timestamp in 3 session files (copied history), and the same instruction appears in a 4th session file at 04:07:29.622Z - 9 seconds later - an independent delivery I never typed. Another message of mine appears in two sessions at 05:08:49Z and 05:10:04Z (~75 s apart).
  3. Parallel copies editing the same file: one edit (04:10:17.940Z) is byte-identical across 3 fork files (= one execution, copied), but 3 other session files contain edits to the same HTML file with different, independent timestamps (04:19-04:52Z) - multiple sessions really were editing one file in parallel.
  4. One lineage ran in acceptEdits mode, so its edits applied without per-edit prompts - combined with the above, files changed "with no instruction I remember giving."
  5. Transcripts contain no fork-lineage metadata (no parent/forkedFrom field), so a user cannot audit which session is a copy of which.

Impact: A non-developer cannot notice the conversation has split (fork auto-switches the UI; per #59631 one click can even create two forks). Instructions land in copies, work duplicates or conflicts, and it looks like the AI is coding without instruction.

Related: #59631, #39484, #49954, #60295, #52051, #27658, #27311

What Should Happen?

  1. A confirmation dialog before forking, and a clear visual indicator that the current chat is a fork.
  2. A guarantee that a typed message is delivered to exactly one session.
  3. Fork lineage metadata in transcripts so duplicated sessions can be audited.
  4. A warning or worktree isolation when multiple sessions share one working directory.

Error Messages/Logs

No single error message - the defect is silent session duplication. Log-style evidence from local transcripts (~/.claude/projects/<project>/, session IDs truncated):

* 2026-06-12: 20 main-session .jsonl files; 15+ nearly identical ~28-29 MB, mtimes within ~2.5 h
* The same user message (typed once) present in 4 files:
  - 5687a6a0-...jsonl  "timestamp":"2026-06-12T04:07:20.737Z"
  - 32ce6637-...jsonl  "timestamp":"2026-06-12T04:07:20.737Z"  (identical = copied history)
  - 3b537807-...jsonl  "timestamp":"2026-06-12T04:07:20.737Z"  (identical = copied history)
  - e16de157-...jsonl  "timestamp":"2026-06-12T04:07:29.622Z"  (9 s later = independent delivery)
* Another user message present in two sessions: 05:08:49.816Z (3b537807) and 05:10:04.350Z (5687a6a0), ~75 s apart
* Edits to the same project HTML file: byte-identical tool-use timestamps across 3 files (04:10:17.940Z = one execution, copied), PLUS independent edit timestamps 04:19-04:52Z in three other session files (48a93ee8 / 68ef2a42 / 799c3b66) = real parallel edits
* One session lineage ran with permission mode "acceptEdits" (edits applied without per-edit prompts)
* "Overloaded" errors appeared in the UI during the same period (not captured)

Steps to Reproduce

  1. Open the Claude Code desktop app on Windows 11 (Korean UI) and work in ONE chat session in one project directory.
  2. Hover over a past user message and click "Fork from here" (여기서 포크하기) — or right-click a session in the sidebar and choose Fork. (Per #59631, a single click can even create TWO forks.)
  3. Observe that the UI silently switches into the forked chat with no visible indicator. A non-developer user does not realize the conversation has split and keeps typing instructions into "the" chat.
  4. Repeat step 2 accidentally a few times over several hours of normal work (the hover button is easy to misclick). During our incident, "overloaded" errors also occurred in the same period.
  5. Result observed:
  • The sidebar accumulates sessions the user never knowingly created.
  • The same typed message appears in multiple session transcripts: 3 copies with identical timestamps (copied history) and 1 with a timestamp 9 seconds later (independent delivery the user never typed).
  • Multiple sessions independently edit the same project file (distinct tool-use timestamps in different .jsonl files).
  1. Check ~/.claude/projects/<project>/*.jsonl: many near-identical large .jsonl files (15+ at 28-29 MB on one day) and NO fork-lineage metadata to audit which session is a copy of which.

Note: steps 1-4 reliably create the silent-fork/auto-switch confusion. The duplicate message delivery (step 5, 9-second offset) is not deterministically reproducible by us; it occurred amid repeated forks + overload errors. Timestamp evidence is in the "error messages/logs" section above.

Claude Model

Other

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.170 (Claude Code) — via Claude desktop app 1.12603.1 (Microsoft Store), Windows 11

Platform

Other

Operating System

Windows

Terminal/Shell

Other

Additional Information

  • During the incident the app also showed repeated "overloaded" errors and stopped responding at times, which made it harder to notice that sessions had multiplied.
  • The fork was most likely triggered accidentally via the "Fork from here" hover button / sidebar context menu (Korean UI). I never used the fork feature intentionally and did not know it existed.
  • I am a non-developer using the Korean-localized desktop app.
  • I can share sanitized transcript excerpts (timestamps and structure only, no project content) privately if needed for reproduction.

View original on GitHub ↗

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