[App/Windows/WSL] git-init-watcher retries permanent EISDIR on workspace root every five seconds
Summary
Codex Desktop 26.707.8168.0 on Windows 11 repeatedly retries a Windows-side file watcher after receiving EISDIR for a WSL2 workspace root. The retry interval eventually settles at approximately five seconds and continues while the application remains open.
Related to #32183, but this reproduces without using the in-app browser and appears to involve the workspace-level git-init-watcher rather than only the browser-related git-repo-watcher path.
Sanitized observation
Workspace form:
\wsl$<distro>home<user><workspace>
Observed behavior:
- Windows Node fs.watch against the WSL workspace root returns EISDIR.
- Watching the nested Git repository root produces the same result.
- The behavior also reproduces through the equivalent \wsl.localhost path and a mapped drive.
- The git-init-watcher retries after failure, with exponential delay capped at approximately five seconds.
- One application run recorded 121 failures in about ten minutes.
- Historical application logs contained more than 17,000 failures from the same error family.
- Git and repository operations performed inside WSL itself continue to work normally.
User names, repository names, task identifiers, full paths, and raw logs have been omitted.
Steps to reproduce
- On Windows 11 with WSL2, open a Git workspace located under the Linux home directory in Codex Desktop.
- Use a workspace path exposed through \wsl$ or \wsl.localhost.
- Leave the desktop application open.
- Inspect the Codex application logs for git-init-watcher or file-watch failures.
Actual behavior
A permanent EISDIR watcher failure enters an effectively unbounded retry loop, producing repeated work and log churn approximately every five seconds.
Expected behavior
- Detect unsupported or permanent watcher errors such as EISDIR.
- Fall back to bounded polling when appropriate, or disable that watcher after a small number of failures.
- Avoid retrying permanent watcher failures indefinitely.
- Prefer a WSL-native watcher when the workspace is handled by the WSL execution backend.
Environment
- Codex Desktop: 26.707.8168.0
- OS: Windows 11 x64
- WSL2: Ubuntu
- Workspace stored in the Linux filesystem under the WSL home directory
- Reproduces without invoking the in-app browser
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗