[Windows + WSL] Regaining focus repeatedly reconciles bundled plugins and uses an invalid C:\mnt\c path, causing severe lag

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

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

26.707.12708.0 x64

What subscription do you have?

ChatGPT Pro

What platform is your computer?

  • Microsoft Windows NT 10.0.26200.0 x64
  • WSL 2.6.3.0
  • Ubuntu 22.04 under WSL2
  • Codex agent configured to run in WSL
  • Integrated terminal configured to use WSL

What issue are you seeing?

When the Windows Codex desktop app is configured to run the Codex agent in WSL, every time the Codex window regains focus it starts bundled plugin reconciliation.

During reconciliation, Codex handles the bundled marketplace and Chrome extension/native host. It attempts to convert a valid WSL path such as:

/mnt/c/Users/REDACTED/.codex/plugins/cache/openai-bundled/chrome/26.707.91948

into this invalid Windows path:

C:\mnt\c\Users\REDACTED\.codex\plugins\cache\openai-bundled\chrome\26.707.91948

The operation fails with ENOENT after approximately 15–20 seconds.

During this period, the Codex UI and sometimes the whole Windows desktop become noticeably sluggish. Mouse movement stutters, keyboard input can be delayed, and switching conversations can feel much slower than normal.

The issue reproduced repeatedly in the same app session:

00:51:54.774Z bundled_plugins_reconcile_started reason=focus
00:52:09.642Z bundled_plugins_marketplace_install_failed errorCode=ENOENT
00:52:11.068Z bundled_plugins_reconcile_failed reason=focus

01:17:18.250Z bundled_plugins_reconcile_started reason=focus
01:17:36.893Z bundled_plugins_marketplace_install_failed errorCode=ENOENT
01:17:38.337Z bundled_plugins_reconcile_failed reason=focus

These UTC timestamps correspond to approximately 08:52 and 09:17 local time (UTC+8). In the inspected session, 14 focus-triggered reconciliation attempts were recorded and all 14 failed.

A representative redacted error is:

errorCode=ENOENT
errorMessage="ENOENT: no such file or directory, access 'C:\\mnt\\c\\Users\\REDACTED\\.codex\\plugins\\cache\\openai-bundled\\chrome\\26.707.91948'"
installedPluginStatus=current
installPhase=reconcile_chrome_native_host
platformFamily=unix
pluginName=chrome

The actual cache directory exists and is readable at the WSL path. Only the converted C:\mnt\c\... path is invalid.

WSL2 and its Ubuntu filesystem appear healthy. Switching the Codex agent back to Windows native/PowerShell avoids this mixed-path failure.

What steps can reproduce the bug?

  1. Install the Codex desktop app on Windows x64.
  2. Configure the Codex agent to run in WSL and restart the app.
  3. Keep the normal Codex home directory at %USERPROFILE%\.codex.
  4. Install or enable the bundled Chrome plugin.
  5. Switch from Codex to any other Windows application.
  6. Switch back to Codex.
  7. Observe severe UI/input lag for approximately 15–20 seconds.
  8. Inspect the Codex desktop log and find bundled_plugins_reconcile_started reason=focus, followed by ENOENT for C:\mnt\c\Users\... and bundled_plugins_reconcile_failed.

The failure reproduced 14 out of 14 times in the inspected session.

What is the expected behavior?

Returning focus to Codex should not repeatedly reinstall or reconcile bundled plugins when their versions are already current.

If reconciliation is necessary, WSL paths should be converted into valid Windows paths such as C:\Users\REDACTED\..., and the operation should not block the desktop UI or cause mouse and keyboard lag.

Additional information

  • The bundled marketplace target contained approximately 58 MB and 457 files.
  • The cached Chrome plugin version was 26.707.91948.
  • The log reported installedPluginStatus=current and chromeExtensionSyncAction=keep_installed, but still continued into the failing native-host reconciliation.
  • runCodexInWindowsSubsystemForLinux = true
  • integratedTerminalShell = "wsl"
  • No raw logs, session files, crash dumps, local usernames, conversation content, or unrelated application names are attached because they may contain sensitive information.
  • Redacted diagnostic information can be provided if requested.

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 1 month ago

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

  • #33560

Powered by Codex Action

xxhh12a · 1 month ago

Related evidence from another Windows x64 installation, on Codex Desktop package 26.715.2305.0 (packaged UI/runtime version 26.715.21425; bundled CLI reports codex-cli 0.145.0-alpha.18).

This machine has integratedTerminalShell = "wsl", but the observed failure differs slightly from the invalid C:\\mnt\\c path case: the bundled marketplace source resolves to the current Windows App package, and no stale 26.707 or 0.144.2 references remain.

Observed startup race

The latest desktop log shows two queued bundled-plugin reconciliations:

  • reconcile started
  • runtime marketplace written with 5 plugins (the browser plugin was omitted)
  • browser@openai-bundled was requested for uninstall because it was not in the temporary marketplace
  • the renderer reported transient ENOENT errors for browser/assets/composer-icon.png and browser/assets/browser.png
  • the first reconcile completed
  • a queued reconcile wrote the marketplace again with 6 plugins and reinstalled browser

The two reconciliation passes took roughly 19.5 seconds and 15 seconds. During the same startup window, plugin/list took about 9–11 seconds and app/list took about 24.6 seconds.

User-visible symptom when opening a conversation

When switching to an existing conversation:

  • thread/read completed in 11 ms
  • model/list took 8.9 seconds
  • plugin/list took 9.0 seconds (two concurrent requests)
  • thread/resume took 9.0 seconds
  • the renderer remained visible and there was no render-process-gone, did-fail-load, GPU crash, or unresponsive-renderer event

This presents as a blank white conversation area until the app-server initialization finishes. SQLite integrity checks for the local state databases returned ok.

Expected behavior

Bundled plugin reconciliation should build and validate a complete marketplace before exposing it to the renderer or changing installed plugin state. It should not temporarily uninstall/reinstall a current bundled plugin, leave missing asset paths visible to the UI, or block conversation resume for approximately 9 seconds. If replacement fails, the last known-good marketplace should remain active and the UI should show a loading state rather than a blank screen.

This appears related to the focus/startup reconciliation problem in this issue, but may also affect native Windows-agent mode because the current case uses a valid Windows source path and still exhibits the partial-marketplace race.