claude-code - 💡(How to fix) Fix Edit/Write tools silently fail to persist in deep isolated-worktree paths on Windows (stale-cache divergence)

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Claude Code's Edit and Write tools occasionally report success on writes inside an isolated git worktree without the change reaching disk. The in-tool Read reflects the "edited" content, but the filesystem still shows the original — a stale-cache divergence between the harness's in-memory state and the actual filesystem.

Error Message

Edit and Write either persist the change to disk OR return an error. They should never silently succeed without persisting.

  1. Detect the failure in the Edit/Write tools: after write, re-read from disk (bypassing any cache) and confirm the new content is there. Return an error if not.
  2. Document the 260-char path limit interaction in the Claude Code docs for Windows users — and ideally have the harness detect it and warn.

Root Cause

Claude Code's Edit and Write tools occasionally report success on writes inside an isolated git worktree without the change reaching disk. The in-tool Read reflects the "edited" content, but the filesystem still shows the original — a stale-cache divergence between the harness's in-memory state and the actual filesystem.

Fix Action

Fix / Workaround

The bug surfaced on 2026-05-21 during a dispatched subagent (general-purpose agent with isolation: "worktree") attempting to fix a matcher file at this path:

Workaround that worked: writing via python -c "open(path, 'w').write(content)" with explicit Windows paths + CRLF preservation.

Subagents dispatched into deep isolated worktrees can spend full review cycles on writes that aren't actually landing. The F-1120 agent caught the divergence via its own verification step and worked around with python -c. Without that defensive check, the failure mode is invisible.

Code Example

c:\work\gregoryrgilles\atlas-pipeline-manager\.claude\worktrees\
  agent-a61bef6c84f6b6d6d\src\w0050-edgar-pipeline\
  m0320-edgar-extraction-stage\c0003-reference-matchers\
  f1120-subsidiary-flag-routine-eligible-override\matcher.js
RAW_BUFFERClick to expand / collapse

Summary

Claude Code's Edit and Write tools occasionally report success on writes inside an isolated git worktree without the change reaching disk. The in-tool Read reflects the "edited" content, but the filesystem still shows the original — a stale-cache divergence between the harness's in-memory state and the actual filesystem.

Environment

  • Platform: Windows 11 Pro 10.0.26200
  • Shell: PowerShell 5.1
  • Claude Code: VSCode native extension
  • Model: Claude Opus 4.7
  • Git: regular (not WSL)
  • File system: NTFS, default LongPathsEnabled = 0 (260-char MAX_PATH limit active)

Reproduction

The bug surfaced on 2026-05-21 during a dispatched subagent (general-purpose agent with isolation: "worktree") attempting to fix a matcher file at this path:

c:\work\gregoryrgilles\atlas-pipeline-manager\.claude\worktrees\
  agent-a61bef6c84f6b6d6d\src\w0050-edgar-pipeline\
  m0320-edgar-extraction-stage\c0003-reference-matchers\
  f1120-subsidiary-flag-routine-eligible-override\matcher.js

Full path ~280 chars (over Windows MAX_PATH default of 260; long-path support not enabled).

The agent reported:

"The Claude Code Edit and Write tools silently reported success on this matcher.js file while not actually persisting changes to disk (the file system showed the original content while the in-tool Read showed the 'edited' content — a stale-cache divergence)."

Workaround that worked: writing via python -c "open(path, 'w').write(content)" with explicit Windows paths + CRLF preservation.

A separate symptom (likely related): the agent's intended write into its isolated worktree at the deep path apparently leaked into the parent worktree's same-relative-path file. The main worktree showed matcher.js modified with the agent's intended fix at a timestamp BEFORE the agent's own worktree was fully populated.

Filename also tested: T-1120-003-production-profile-shape.test.js was rejected at this same deep path; the shorter T-1120-003-prod-profile-shape.test.js worked. Likely path-length related (both filenames are <50 chars, but full path with the 47-char one exceeds 260).

Expected

Edit and Write either persist the change to disk OR return an error. They should never silently succeed without persisting.

Impact

Subagents dispatched into deep isolated worktrees can spend full review cycles on writes that aren't actually landing. The F-1120 agent caught the divergence via its own verification step and worked around with python -c. Without that defensive check, the failure mode is invisible.

Suggested mitigations (in order of preference)

  1. Detect the failure in the Edit/Write tools: after write, re-read from disk (bypassing any cache) and confirm the new content is there. Return an error if not.
  2. Document the 260-char path limit interaction in the Claude Code docs for Windows users — and ideally have the harness detect it and warn.
  3. Provide a setup-time check or recommendation that Windows users enable LongPathsEnabled registry key to avoid this class of failure.

Workaround we're using in the meantime

We've added a "verify with git status after any Edit or Write in an isolated worktree" rule to our repo's src/architecture/file-discipline.md as a defensive protocol for future dispatched subagents.

References

The full F-1120 fix dispatch done-packet (which surfaced this issue) lives in our repo at docs/audits/f1120-matcher-fix-2026-05-21/done-packet.md. Happy to share more context if helpful.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Edit/Write tools silently fail to persist in deep isolated-worktree paths on Windows (stale-cache divergence)