[Linux][WSL2] Desktop app rewrites /mnt project roots to Windows drive paths and marks them missing

Resolved 💬 0 comments Opened Aug 14, 2026 by zzyu17 Closed Aug 19, 2026

What version of the Codex App are you using (From “About Codex” dialog)?

26.803.81509 (Ubuntu .deb package)

Bundled app-server: codex-cli 0.147.0-alpha.6.6

What subscription do you have?

Plus; but this appears independent of subscription.

What platform is your computer?

  • Windows 10 Build 19045
  • Ubuntu 24.04.4 LTS under WSL2/WSLg

What issue are you seeing?

In the native Linux desktop app running inside WSL2, every project rooted on a Windows-mounted drive is rewritten from its valid Linux path to a Windows drive path in the UI and then treated as missing.

For example, the persisted project root is correct:

/mnt/d/xxx

but the renderer receives and displays:

D:\xxx

The project reports “Project folder was deleted or moved,” and Start new chat in xxx is disabled. The same occurs for other projects under mounted drives. Projects under /home remain usable.

What steps can reproduce the bug?

  1. Install the Linux .deb inside Ubuntu 24.04 on WSL2 and launch it through WSLg.
  2. Add a local project whose folder is under /mnt/<drive>/xxx.
  3. Restart the app or reopen the project sidebar.
  4. Observe that the project path is shown as <drive>:\xxx and starting a new chat is disabled because the folder is considered missing.

What is the expected behavior?

A native Linux process should preserve /mnt/<drive>/xxx as a Linux path for display and filesystem checks. Existing mounted folders should remain available for new project chats.

Additional information

The persisted state is not the source of the corruption: .codex-global-state.json contains /mnt/<drive>/xxx.

The conversion occurs in the Electron main bundle when getLocalProjectsForRenderer() maps local roots through the desktop/WSL path converter. With WSL-path mode false on the native Linux process, /mnt/<drive>/xxx is converted to <drive>:\xxx. The subsequent existence check uses the native Linux execution host and therefore cannot stat that Windows path.

The bundled app-server itself can successfully resolve fs/getMetadata for /mnt/<drive>/xxx.

As an isolated verification, replacing only the local-project renderer conversion with an identity mapping preserved the /mnt/<drive>/xxx paths and immediately enabled Start new chat for all affected projects. No app-server or persisted-state change was required.

View original on GitHub ↗