[BUG] Windows junction/symlink project aliases create duplicate Claude Desktop projects and runtime-bound broken sessions

Resolved 💬 3 comments Opened May 5, 2026 by BasedGPT Closed Jun 2, 2026

Preflight Checklist

  • [x] I have searched existing issues and did not find this specific Windows junction/symlink failure mode
  • [x] This is a single bug report
  • [x] I am using a current Claude Desktop / Claude Code install

What's Wrong?

Claude Desktop appears to derive the .claude\projects\<slug> storage directory from the literal cwd path string used at session start, without resolving Windows junctions/symlinks first. It also appears to keep that literal cwd string bound in memory for later filesystem operations.

This creates two related failure modes:

  1. A project accessed through both a real path and a junction path becomes two separate Claude Desktop projects.
  2. Removing the junction while a session launched through that path is still alive breaks runtime filesystem access for that session.

Example:

---

[!IMPORTANT] Recovery toolkit: Diagnostic and repair tooling for this and related Windows session-recovery cases - https://github.com/BasedGPT/claude-code-session-recovery python tools/diagnose.py is read-only and identifies the failure mode. The junction / path-alias case in this issue is handled by tools/sessions/rewrite_metadata_cwd.py once diagnose.py has classified it.

View original on GitHub ↗

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