Windows Codex Chrome plugin installed/enabled but native host manifest and registry key are never created
What version of the Codex App are you using (From “About Codex” dialog)?
0.144.2
What subscription do you have?
plus
What platform is your computer?
_No response_
What issue are you seeing?
Environment: - OS: Windows 10.0.22631 / Windows 11 Core, zh-CN, x64 - Codex Desktop package: OpenAI.Codex 26.707.8479.0 - Codex CLI: 0.144.2, executable C:\Users\Win 10\AppData\Local\OpenAI\Codex\bin\3135b80b111fd431\codex.exe - CODEX_HOME: C:\Users\Win 10\.codex - Chrome plugin: chrome@openai-bundled 26.623.141536, installed/enabled - Chrome extension ID: hehggadaopoacecdllhhajmbjkdcmajg - Chrome selected profile: Profile 1 Problem: Chrome automation fails with: Browser is not available: extension Diagnostics: check-extension-installed.js --json succeeds: - installed: true - enabled: true - selectedProfileDirectory: Profile 1 check-native-host-manifest.js --json fails: - manifestPath: C:\Users\Win 10\AppData\Local\OpenAI\extension\com.openai.codexextension.json - registryKey: HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension - registryManifestPath: null - exists: false - correct: false - problem: Windows native host registry key does not exist; Native host manifest does not exist Actions already tried: 1. Reinstalled Google Chrome. 2. Reinstalled Codex Desktop. 3. Removed and reinstalled Chrome plugin from Codex Plugins UI. 4. Removed and reinstalled Chrome plugin with CLI. 5. Fixed plugin cache ACLs. 6. Recreated chrome/latest junction. 7. Re-registered Codex AppX package successfully. 8. Ran codex doctor; overallStatus: ok. Expected: Installing/reinstalling Chrome plugin should create: - %LOCALAPPDATA%\OpenAI\extension\com.openai.codexextension.json - HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension Actual: Codex reports Chrome plugin installed/enabled and Chrome extension installed/enabled, but native host manifest and HKCU registry key are never created. Chrome backend remains unavailable. Related: - https://github.com/openai/codex/issues/23283 - https://github.com/openai/codex/issues/24040 - https://github.com/openai/codex/issues/31152
What steps can reproduce the bug?
Dont know
What is the expected behavior?
_No response_
Additional information
_No response_
6 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I can reproduce this on a second Windows machine with the same desktop package, and I was able to identify the failure before native-host registration.
Environment
OpenAI.Codex_26.707.8479.0_x64__2p2nqsd0c76g026.707.62119Root cause
The plugin payload/config step succeeds, but the desktop app fails while relocating its bundled Electron runtime from WindowsApps:
The affected source files are:
All four are valid OpenAI-signed files, but Windows reports them as
Compatibility Level: Application Protected/Archive, Encrypted. The current relocation path uses Node/ElectroncopyFileSync, which fails when copying these protected WindowsApps files to a normal user directory.For this build the app computes the runtime cache directory:
The app validates the four cached files by type, size, and SHA-256. Because relocation fails before that directory is created, native-host reconciliation never reaches the steps that create:
This explains why the UI/CLI reports the plugin installed and enabled while Chrome still reports the app/native host as missing.
Verified recovery
As a local diagnostic workaround, I copied the four official files with data/timestamp only semantics (equivalent to
robocopy /COPY:DT) into the expected hash directory, then verified each destination file against the WindowsApps source by size, SHA-256, and Authenticode signature.After the app regained focus and the Chrome plugin install flow was retried, the app completed its own supported reconciliation and created the native-host manifest, registry entry, v2 host state, and
.plugin-appserver. Chrome then connected successfully. I did not runinstallManifest.mjsor manually create the manifest/registry entry.The bundled marketplace materialization in this package shows the same protected-file failure pattern when Electron tries to copy files from
resources\plugins.Suggested fix
The later
.plugin-appservermaterialization path already appears to have a decrypted-destination fallback. The earlier WindowsApps runtime relocation path should use the same behavior (or the Windows equivalent ofCOPY_FILE_ALLOW_DECRYPTED_DESTINATION) instead of plaincopyFileSync.It would also help if the install UI surfaced the underlying relocation error rather than only reporting that Chrome/the extension is not installed.
Follow-up: I have now validated a durable local self-heal workaround for this failure class. This is not a replacement for fixing the WindowsApps copy path in the app, but it prevents the same Store update from leaving the browser integration broken on this machine.
Self-heal design
Microsoft-Windows-AppXDeploymentServer/Operational, providerMicrosoft-Windows-AppXDeployment-Server, event ID400, filtered toDeploymentOperation=6andPackageDisplayName=ChatGPT, with a 45-second delay.installManifest.mjs, or manually write the Native Messaging manifest/registry. Native-host reconciliation remains owned by the desktop app.Verified state
Package:
OpenAI.Codex_26.707.8479.0_x64__2p2nqsd0c76g0Verified hashes/fingerprints:
3135b80b111fd43124fd448d7c84cbb228f7301d66322c36577229724eaf2f24ecfc0d9aa02807e36598fc7c4f64f0a1060172dc94ccbc574600af802a415d61e6611a5836848a97c27c7bb4ed8a4c99ded91809dba9ff0312cc8b1eaea73204The final full audit passed the four-file runtime cache, full 3,558-file CUA Node tree, stable marketplace mirror/registration, Native Messaging manifest and Chrome HKCU registration, both v2 host-state files,
.plugin-appserver, required plugins, and the scheduled-task definition.I manually started the task. It returned to Ready in about 2 seconds with
LastTaskResult=0and loggedscheduled_fast_path_healthy. All 29 pre-existing Chrome/Codex/ChatGPT processes were still running afterward, and a fresh Chrome-extension control connection successfully enumerated the open tabs.The product-side fix remains the same: the early WindowsApps runtime/marketplace relocation path needs a decrypted-destination-capable copy fallback instead of plain Electron/Node
copyFileSync.I can reproduce this on another Windows machine, including after a fully automated transactional uninstall/reinstall. This remains broken in a newer Store package, and in this case the four-file runtime relocation workaround described above is already satisfied.
Environment
OpenAI.Codex_26.707.9981.0_x64__2p2nqsd0c76g00.144.226.623.319211.2.27203.26575_0Profile 1hehggadaopoacecdllhhajmbjkdcmajg019f61c7-af98-7851-886c-b9b646007174Symptoms and official diagnostics
The desktop settings page shows a green Connected badge, but the Chrome extension says “Install the app to use ChatGPT in Chrome.”
check-extension-installed.js --jsonsucceeds:check-native-host-manifest.js --jsonfails:Both remain absent:
The Chrome backend reports:
Recovery attempts completed
chrome@openai-bundledthrough both UI and CLI.extension-host.exe, then restarted Codex first.winget repair.9PLM9XGG6VKS.%USERPROFILE%\.codex.26.707.9981.0.The manifest and registry key were still not created.
Additional evidence relative to the runtime-copy workaround
The expected runtime cache already exists at:
All four cached executables:
Files verified:
%USERPROFILE%\.codex\plugins\.plugin-appserverexists, but%USERPROFILE%\.codex\chrome-native-hosts-v2.jsondoes not. I also found nobundled_executable_relocation_failedorMissing bundled Electron runtimelines in the available desktop logs.So this machine reaches a different failure state: the verified runtime cache and plugin appserver are present, yet Chrome native-host reconciliation still never creates the v2 state, manifest, or registry entry.
Impact
This is a subscription-blocking issue for me. Authenticated control of my existing Chrome session is the primary reason I considered replacing another coding-agent subscription with Codex; without working Chrome integration on Windows, that workflow is disqualified.
Please make the UI validate the actual native-host state before displaying Connected, surface the underlying reconciliation error, and repair the native host automatically when the plugin is installed or rebuilt.
Quick update: I finally got this working.
Reinstalling the app and extension was not the answer. On my Windows machine, two WMI process classes that Codex relies on were missing. That caused the bundled Chrome plugin setup to fail before Codex could create the native messaging host.
This explains the confusing behavior. Codex said Chrome was "Connected," while the extension still said "Install the app."
I do not have admin rights, so instead of repairing WMI, I used a small user-scoped PowerShell compatibility shim for those process queries. I also removed a stale marketplace entry left over from earlier troubleshooting and restarted Codex. After that, Codex successfully created its own manifest, registry entry, plugin cache, and native host.
I verified it end to end through the real Chrome extension backend. Codex detected my open tabs, searched YouTube, and opened a video.
The underlying issue appears to be that Chrome setup completely fails when those Windows WMI queries are unavailable. It would be helpful if Codex could fall back to another process-listing method and if "Connected" reflected an actual native-host connection.
I am happy to share the workaround scripts and logs if they would help.
Confirmed on a newer Windows Store build, with an additional detail that explains why a successful CLI reinstall can still leave the Chrome backend unavailable.
Environment
OpenAI.Codex 26.715.4045.026.715.319251.2.27221.15725_0Root cause observed
The AppX files under
WindowsAppswere reported asArchive, Encrypted/ application-protected. Electron/Node's normalcopyFileSyncpath failed with Windows error 6000 ("The specified file could not be encrypted"). This affected both:The plugin package could therefore appear installed/enabled while these were still absent:
Important lifecycle detail
codex plugin add chrome@openai-bundledinstalls the plugin payload, but it does not itself run the desktop host service that performs Chrome native-host reconciliation. In this failure state, the CLI command can return success whilelatest, the v2 state, manifest, and registry entry are still missing.Recovery that worked
robocopy /COPY:DT), then verified source/destination size, SHA-256, and Authenticode:codex.execodex-code-mode-host.execodex-command-runner.execodex-windows-sandbox-setup.exeopenai-bundledmarketplace to a stable user-writable directory using the same data/timestamp copy semantics, verified the complete tree, and pointed the marketplace entry at that mirror.chrome@openai-bundledthrough the supported plugin flow.latestjunction,.plugin-appserver,chrome-native-hosts-v2.json, native manifest, and HKCU registration.I did not hand-write the native manifest/registry and did not run
installManifest.mjs.End-to-end verification
After repair, the real Chrome extension backend connected. I created a browser-controlled tab, navigated to
https://example.com/, and read:extension-host.exewas running from the currentlatestjunction.Product-side fixes suggested
latest, v2 state, manifest, registry, and current AppXresourcesPath.