Windows desktop Summary tab shows false GitHub CLI / PR status errors for WSL repos and logs git watcher ENOENT on .git paths

Open 💬 8 comments Opened Apr 15, 2026 by tompw89
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Draft prepared with Codex assistance; details verified by me.

I searched existing issues first. The closest matches I found were #13689 and #14182, but neither seemed to fully cover this specific Summary-tab failure mode.

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

Version shown in the About Codex screen:
26.409.61251

I also observed the Windows Store package path:
OpenAI.Codex_26.409.7971.0_x64__2p2nqsd0c76g0

Rollout/session metadata on this machine also shows:
cli_version: 0.119.0-alpha.28

What subscription do you have?

ChatGPT Pro

What platform is your computer?

Windows host with a WSL workspace

What issue are you seeing?

In the Windows Codex desktop app, the Summary tab in the right-hand panel shows misleading GitHub/PR status errors for a valid WSL-hosted Git repo.

The messages include:

  • GitHub CLI unavailable
  • Pull request status unavailable

However, GitHub CLI is not actually unavailable.

What I verified:

  • Linux gh in WSL works
  • Windows gh.exe works
  • gh auth status succeeds
  • after adding the repo as a Windows Git safe.directory, Windows gh.exe repo view and gh.exe pr status also worked normally against the checkout

So the Summary tab message appears to be a generic fallback rather than a literal statement that gh is missing.

What steps can reproduce the bug?

  1. Use the Codex Windows desktop app with a repo hosted in WSL, for example /home/...
  2. Open a thread for that repo
  3. Open the Summary tab on the right-hand side
  4. Observe GitHub CLI unavailable or Pull request status unavailable

What is the expected behaviour?

The Summary tab should correctly detect GitHub/PR state for the repo, or at least show a specific error that reflects the real failure.

It should not claim GitHub CLI is unavailable when gh is installed, authenticated, and working.

What is the actual behaviour?

The Summary tab shows misleading GitHub/PR status messages even though GitHub CLI works in both WSL and Windows contexts.

Additional information

I ruled out several simpler explanations:

  • Windows Git safe.directory trust was initially missing for the WSL checkout, but fixing that did not fix the Summary tab.
  • I also found and repaired a separate local SQLite state DB issue (state_5.sqlite migration mismatch). That fixed thread metadata updates, but the Summary tab problem still remained.

The strongest evidence now points to a WSL git-path watcher problem in the desktop app itself.

In the desktop logs, the app’s git repo watcher fails with ENOENT on WSL .git paths such as:

  • /home/<redacted>/projects/codex/.git/HEAD
  • /home/<redacted>/projects/codex/.git/FETCH_HEAD
  • /home/<redacted>/projects/codex/.git/packed-refs

Related git commands are then aborted before start.

So this looks less like a real gh problem and more like a Windows desktop app bug in WSL git-path watching / repo-state detection.

Potentially related issues:

  • #13689 for the false GitHub CLI is not installed message
  • #14182 for Windows app misreading valid WSL git state

View original on GitHub ↗

8 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #16778
  • #17961

Powered by Codex Action

tompw89 · 3 months ago

Draft prepared with Codex assistance; details verified by me.

I reviewed the duplicate suggestions from the bot.

  • #16778 looks related to the false GitHub CLI detection family, but it is a different surface and different environment (macOS PR creation flow rather than Windows/WSL Summary tab state).
  • #17961 looks related to Windows/WSL desktop integration failures, but it is about branch creation (Wsl/Service/E_UNEXPECTED), not the Summary tab GitHub/PR-status path.

So I do not believe this issue is a duplicate of either one.

eschulma · 2 months ago

Yes, we have this too. There is a workaround -- make a symbolic link via PowerShell to point to your project.

TyceHerrman · 2 months ago

seeing similar behavior in desktop app on macos

Yuichiroh-Kobayashi · 2 months ago

Draft prepared with Codex assistance; details verified by me.

I am adding reproduction details here because this appears to match the visible Desktop symptom in this issue, rather than opening a new duplicate issue.

I am seeing a very similar issue on Windows + WSL with Codex Desktop.

Environment

  • OS/Runtime: Windows 11 host with WSL2
  • WSL distro: Ubuntu 24.04.4 LTS
  • Kernel: 6.6.87.2-microsoft-standard-WSL2
  • Repository path: /home/<redacted>/Dev/<repo>
  • Current branch: main
  • GitHub CLI: gh version 2.92.0
  • gh path: /usr/bin/gh
  • Git protocol: HTTPS
  • Codex Desktop version: 26.506.31421

GUI symptom

Codex Desktop keeps showing the Japanese equivalent of:

Unable to fetch pull request status

Specifically:

プルリクエストの状態を取得できません

Restarting Codex Desktop did not change the state.

CLI evidence

When the command is run with Codex network access allowed, GitHub CLI authentication succeeds:

Logged in to github.com account <account>
Git operations protocol: https
Token scopes include repo

Repository lookup also succeeds:

{"defaultBranchRef":{"name":"main"},"nameWithOwner":"<owner>/<repo>"}

gh pr status succeeds and reports that there is simply no PR associated with the current branch:

Relevant pull requests in <owner>/<repo>

Current branch
  There is no pull request associated with [main]

Created by you
  You have no open pull requests

Requesting a code review from you
  You have no pull requests to review

gh pr view --json number,url,headRefName,baseRefName returns:

no pull requests found for branch "main"

Sandbox/network distinction

In the normal Codex sandbox, gh auth status reports the token as invalid.

With Codex network access allowed, the same gh auth status succeeds.

So this does not look like a normal GitHub CLI setup problem. It looks like Codex Desktop may be surfacing either:

  1. a sandbox/network/auth reachability failure, or
  2. a normal “no PR for current branch” state,

as a generic PR-status error.

Expected behavior

If the current branch simply has no associated pull request, the Desktop UI should show a normal empty state, for example:

No pull request is associated with the current branch.

If GitHub cannot be reached from the current sandbox/network context, the UI should distinguish that from:

  • gh not installed
  • gh not authenticated
  • no PR associated with the current branch
  • actual GitHub API failure

Possibly related

This may also overlap with the sandbox/network/auth false-negative issues discussed in #12996 and #21821, but the visible Desktop symptom here matches this issue most closely.

Note: I am not assuming the same root cause as #21821, because this environment uses WSL Linux /usr/bin/gh and the Linux GitHub CLI config under /home/..., not the Windows Credential Manager / keyring path.

tompw89 · 2 months ago

Adding one impact clarification plus fresh diagnostic evidence.

This is not only a misleading Summary-tab error message. Because Desktop's git watcher is failing on WSL repo paths, repo-derived UI can become stale or incomplete. In practice that can make Desktop show false PR/GitHub status errors, fail to refresh branch/repo state, and potentially leave review/diff surfaces empty or out of date. The user experience is that a valid WSL Git workspace appears partially broken, even though Git and GitHub CLI work normally in the same environment.

I also tested the suggested Windows symlink workaround on Codex Desktop 26.506.3741.0. It did not fix the watcher on this machine. Creating C:\home\tom\projects -> \\wsl$\Ubuntu\home\tom\projects made the Linux path visible to Windows, but Desktop's watcher failure changed from ENOENT to EISDIR.

A standalone Windows Node test reproduced the same behaviour:

  • fs.watch() fails on the symlink path.
  • fs.watch() also fails on the direct \\wsl$ path.
  • fs.watchFile() succeeds on the same paths.

That suggests the robust fix is not a path symlink. Desktop should avoid Windows fs.watch() for WSL-backed git paths, either by routing those watches through app-server fs/watch, or by falling back when local fs.watch() throws ENOENT or EISDIR.

tajemniktv · 2 months ago

I started seeing that issue today for some reason. I was tinkering with config.toml, but nothing that would break github integration.

Funny thing is, I can use "Commit" button and after using it, the "Open Pull Request" reports back as usual.

0xdevalias · 1 month ago

Cross-linking a macOS instance of the same misleading Summary-panel state:

  • #27740

The underlying cause there is different from the WSL watcher failure described here. Codex Desktop's main-process shell environment import exceeds its 5-second timeout, leaving a minimal GUI PATH; gh --version then fails to resolve and the UI maps that directly to GitHub CLI unavailable.

This provides another concrete case where the visible missing state is a generic downstream result rather than proof that GitHub CLI is actually absent. #27740 includes packaged-code and log evidence for that path.