Windows: Chrome plugin install fails to create com.openai.codexextension Native Messaging Host
Summary
Codex Desktop Chrome plugin installation fails on Windows. The Codex Chrome extension itself is installed and enabled in Chrome, and check-extension-installed.js --json succeeds. However, the official Codex Desktop plugin install lifecycle does not create or register the Windows Native Messaging Host com.openai.codexextension.
This is not a "Chrome extension not installed" problem. The failure is specifically that Codex Desktop does not generate/register the native host manifest and registry entry during Chrome plugin installation.
Environment
- OS: Windows Home China 25H2, build
26200.8655, 64-bit - Codex Desktop package:
OpenAI.Codex 26.611.8604.0 CODEX_HOME:C:\CodexHome- Chrome executable:
C:\Program Files\Google\Chrome\Application\chrome.exe - Chrome version:
149.0.7827.116 - Codex plugin:
chrome@openai-bundled - Chrome plugin version:
26.611.62324 - Codex Chrome extension ID:
hehggadaopoacecdllhhajmbjkdcmajg - Codex Chrome extension version:
1.1.5_0 - Chrome profile selected by checker:
Default
Expected behavior
Installing the Chrome plugin from Codex Desktop Plugins UI should create and register the Windows Native Messaging Host:
- Manifest:
%LOCALAPPDATA%\OpenAI\extension\com.openai.codexextension.json
- Registry key:
HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension
The registry default value should point to:
%LOCALAPPDATA%\OpenAI\extension\com.openai.codexextension.json
After that, the Codex Chrome extension should be able to connect to the native host.
Actual behavior
Codex Desktop Plugins UI shows:
plugin install failed
After this failure:
- The plugin package is copied locally.
chrome@openai-bundledis listed as installed/enabled.- The Chrome extension remains installed/enabled.
- But the Windows Native Messaging Host is not created or registered.
Observed state:
%LOCALAPPDATA%\OpenAI\extension\com.openai.codexextension.json
missing
HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension
missing
HKLM\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension
missing
HKLM\Software\WOW6432Node\Google\Chrome\NativeMessagingHosts\com.openai.codexextension
missing
C:\CodexHome\chrome-native-hosts-v2.json
{"schemaVersion":2,"entries":[]}
Diagnostics
check-extension-installed.js --json succeeds:
installed=true
enabled=true
selectedProfileDirectory=Default
extensionId=hehggadaopoacecdllhhajmbjkdcmajg
extensionVersion=1.1.5_0
check-native-host-manifest.js --json fails:
Windows native host registry key does not exist:
HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension
Native host manifest does not exist:
C:\Users\<redacted>\AppData\Local\OpenAI\extension\com.openai.codexextension.json
Reproduction steps
- Set
CODEX_HOMEto:
``text``
C:\CodexHome
- Confirm Codex Desktop and Codex CLI are using the same
CODEX_HOME.
- Remove stale Chrome plugin state through the official CLI:
``powershell``
codex plugin remove chrome@openai-bundled --json
- Open Codex Desktop.
- Go to Plugins.
- Add/install the Chrome plugin through the Codex Desktop Plugins UI.
- Observe that the UI reports:
``text``
plugin install failed
- Verify that the Chrome extension is installed and enabled.
- Verify that the native host manifest and registry key are still missing.
Troubleshooting already tried
- Verified
CODEX_HOMEis consistentlyC:\CodexHome. - Removed stale
chrome@openai-bundledvia official CLI:
``powershell``
codex plugin remove chrome@openai-bundled --json
- Reinstalled Chrome plugin through Codex Desktop Plugins UI.
- Ran Windows App Repair.
- Ran Windows App Reset.
- Reinstalled the Chrome plugin through Plugins UI again.
- Verified the Chrome extension remains installed/enabled throughout.
- Verified no Chrome policy blocking Native Messaging was found.
- Verified Defender Controlled Folder Access is disabled.
- Verified
%LOCALAPPDATA%\OpenAI\extensionACL allows the current user. - Verified other Chrome
NativeMessagingHostsentries exist, so the Chrome native messaging registry mechanism is not generally broken.
Important clarification
Please do not treat this as a Chrome extension installation failure.
The Chrome extension is installed and enabled, and check-extension-installed.js --json succeeds.
The failing layer is the Codex Desktop Chrome plugin install lifecycle: it does not generate/register com.openai.codexextension as a Windows Native Messaging Host.
Why this looks like a Codex Desktop install lifecycle bug
The state after installation is internally inconsistent:
- Codex plugin state says
chrome@openai-bundledis installed/enabled. - Chrome extension state says the extension is installed/enabled.
- But the required native messaging manifest is missing.
- The required HKCU registry key is missing.
C:\CodexHome\chrome-native-hosts-v2.jsonremains empty.
This suggests the plugin package copy/install step partially succeeds, but the native host setup step either does not run, fails silently, or fails without repairing the plugin state.
Related issues
This appears related but not identical to:
- #21674: Chrome plugin shows "Install failed" even though the Chrome extension is installed and enabled.
- #24040: Native Messaging Host registry key missing while the manifest exists.
This case appears to fail one step earlier than #24040: both the manifest and registry key are missing after the official install lifecycle, even after App Repair and App Reset.
Requested fix / expected installer behavior
When installing or repairing the Chrome plugin, Codex Desktop should either:
- Successfully create:
``text``
%LOCALAPPDATA%\OpenAI\extension\com.openai.codexextension.json
HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension
and update chrome-native-hosts-v2.json accordingly;
or:
- Fail the plugin install atomically and leave
chrome@openai-bundlednot installed, with a clear error message explaining which native host setup step failed.
The current behavior leaves the plugin marked installed/enabled while the native messaging host is absent, which makes the user-facing state misleading and prevents Chrome-backed Codex automation from working.
Additional diagnostic data available
I can provide redacted outputs for:
Get-AppxPackage -Name OpenAI.Codex | Select-Object Name, Version, InstallLocation, PackageFullName
[Environment]::GetEnvironmentVariable("CODEX_HOME", "User")
[Environment]::GetEnvironmentVariable("CODEX_HOME", "Machine")
$env:CODEX_HOME
codex plugin marketplace list --json
codex plugin list --json
Test-Path "$env:LOCALAPPDATA\OpenAI\extension\com.openai.codexextension.json"
reg query HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension /ve
reg query HKLM\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension /ve
reg query HKLM\Software\WOW6432Node\Google\Chrome\NativeMessagingHosts\com.openai.codexextension /ve
Get-Content "C:\CodexHome\chrome-native-hosts-v2.json" -Raw
I will redact usernames, tokens, session data, API keys, cookies, and any contents of auth.json.
12 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
你解决这个问题了吗,我也遇到同样的问题
Reproduced on a newer Codex Desktop build. This appears to be the same failure mode as the original report.
Environment
10.0.19045, x64OpenAI.Codex 26.715.2305.0150.0.7871.125chrome@openai-bundled 26.601.21317hehggadaopoacecdllhhajmbjkdcmajg1.2.27221.15725_0DefaultObserved state
The Chrome extension diagnostic succeeds:
The plugin UI initially displays Failed to install plugin, but the Chrome plugin can later appear in the installed/enabled list. Despite that, the required Native Messaging Host remains completely absent:
check-native-host-manifest.js --jsonreports:The ChatGPT Chrome side panel therefore continues to show:
Troubleshooting completed
%LOCALAPPDATA%\OpenAI\extensiondirectory exists and the interactive Windows user has Full Control.The plugin package copy appears to succeed, but the native-host setup step does not run or fails without rolling back the installed/enabled plugin state.
A desktop-app feedback report was also submitted with ID:
no-active-thread-019f71aa-ce8a-79d1-a822-1842469a56e2This confirms the issue is still reproducible in Desktop
26.715.2305.0with extension1.2.27221.15725_0.Confirmed on Codex Desktop
26.715.4045.0with Chrome plugin26.715.31925and extension1.2.27221.15725_0.In my reproduction this was not a Chrome-extension problem. The WindowsApps runtime and bundled marketplace files were
Archive, Encrypted/ application-protected, and Electron/Node copying failed with Windows error 6000. The plugin then appeared installed/enabled, but native-host reconciliation never produced the manifest, HKCU key, v2 state, orlatestjunction.A second important finding: a successful
only installs the plugin payload. It does not by itself execute the desktop host service that creates/reconciles the Chrome native host, so CLI success is not proof that the browser integration is healthy.
The recovery was:
robocopy /COPY:DT.openai-bundledmarketplace to a stable user-writable path using the same semantics and verify the complete tree.latest,.plugin-appserver,chrome-native-hosts-v2.json, the manifest, and the HKCU key before testing the real extension backend.Do not manually fabricate the native manifest/registry and do not run
installManifest.mjs.After repair, I verified the real Chrome extension backend end-to-end by opening
https://example.com/and reading the title and DOM successfully.Full root-cause and lifecycle detail is also posted in #32802.
Follow-up from the same Windows machine: the native host/side panel was recovered, but Chrome control still failed at the browser runtime bootstrap stage because Codex Desktop was pointing to a stale extracted CUA runtime.
Current environment
OpenAI.Codex 26.715.9868.00.145.0-alpha.30chrome@openai-bundled 26.715.720281.2.27221.15725After the side panel connected successfully, a new Chrome-backed task ("open example.com in a new tab") failed with:
The plugin's
extension-host-config.jsonand the v2 native-host state both referenced:That cached runtime was stale:
The current Desktop package contains a newer runtime:
As a diagnostic workaround, I backed up the cached executable and replaced only
node_repl.exewith the exact file from the current installed package. The destination SHA-256 was verified against the package source:After that replacement, the same browser task progressed past runtime bootstrap, performed the browser navigation policy check, and successfully opened
https://example.com/in a new Chrome tab.A normal recursive copy from
WindowsAppsagain failed with Windows error 6000 / "The specified file could not be encrypted"; a byte-for-byte destination write was required. The old executable remains backed up.This suggests that a Codex Desktop update can leave the extracted
cua_noderuntime at0.0.1while the updated app/plugin continues referencing that stale cache directory. The app should invalidate or re-extract this runtime based on its manifest version/hash during update or Chrome-plugin reconciliation. This is related to the encrypted-package copy failure already described above and in #32802.Desktop feedback report
A Codex Desktop feedback report with logs was submitted with ID:
019f71ba-3bc1-7de0-8c92-7d10a96bcbc2Follow-up: Chrome control works in the Chrome side panel, but not from Codex Desktop tasks
This is an important correction to my previous successful test: opening
https://example.com/confirmed URL navigation only. It did not confirm element-level page interaction from a Codex Desktop task.Environment
26.715.9868.026.715.720281.2.27221.15725Reproduction
@Chromeand asked the Desktop task only to confirm that it could see the current tab, without making changes.> Could not connect to the current Chrome tab, so I cannot confirm that I can see the page. No changes were made.
Conclusion
The Chrome extension, native host, page reading, and element-level UI interaction are working from the Chrome side panel. The remaining failure is specifically the handoff/connection between a Codex Desktop task and the active Chrome tab.
Starting a fresh Desktop task does not clear the problem, so this is not only stale chat-specific state. The issue should not yet be considered fully resolved.
Related feedback ID:
019f71ba-3bc1-7de0-8c92-7d10a96bcbc2Additional reproduction on a current Windows build (2026-07-26).
Environment:
OpenAI.Codex_26.721.4979.0_x640.125.0150.0.7871.182chrome@openai-bundledshown as installed/enabled in CodexAfter fully restarting Codex and Chrome, then reinstalling both the Codex Chrome plugin and the Chrome extension, the UI still showed Chrome as connected, but agent-side Chrome discovery failed.
The installed state matched this issue exactly:
There were two additional broken installation artifacts:
%USERPROFILE%\.codex\plugins\cache\openai-bundled\chrome\latestwas missing, while onlychrome\localexisted.installManifest.mjsresolves a cache install to..\latest, so the native-host install path could not complete normally.docsdirectory, so after the runtime finally connected,browser.documentation()failed withPackaged browser documentation directory is missing.The bundled
browser-client.mjsthen independently failed at bootstrap with:This is the same runtime incompatibility reported in #34372 (also related to #33001 / #32991). Reinstalling the plugin restored the same stale/incompatible artifact, so restart and reinstall did not help.
A local repair confirmed all layers:
chrome\latestjunction pointing tochrome\local.globalThis.process.installManifest.mjswith the current Codex app runtime paths.check-native-host-manifest.js --jsonreturnedcorrect: trueand the expected extension origin.extension: 0toextension: 1.This suggests the Windows Chrome plugin install/repair flow should be atomic and validate all of the following before reporting installed/connected:
latestpoints to the active plugin payload;If any check fails, the installer should repair it or surface the exact failing step instead of leaving the plugin marked installed/enabled and the UI showing a misleading connected state.
Additional current-build reproduction (2026-07-27):
26.721.4979.0chrome@openai-bundled 26.721.410591.2.27221.15725_0DefaultThe plugin is installed/enabled and the official extension diagnostic reports the extension installed, registered, and enabled. However, the native-host installation is only partially present:
The official native-host manifest check exits with code
1, reportscorrect=false, and specifically identifies the missing registry key. After fully restarting Codex and Chrome, the Chrome side panel still saysInstall the app to use ChatGPT in Chrome/open the app if already installed, and browser-backend discovery exposes only the in-app browser (iab), not the Chrome extension backend.No manifest or registry entry was manually created or edited for this verification.
This is a slightly different partial-install state from the original both-missing case: the manifest file exists, but registration did not complete. The installer/repair flow should validate the manifest, the HKCU registration, and real extension-backend discovery before reporting the plugin as installed/enabled or connected; otherwise it should repair the missing step or surface it explicitly.
Follow-up: packaged desktop detector ignores isolated Chrome profiles, and native-host reconciliation does not enforce the registry postcondition
Additional read-only diagnosis on the current Windows ARM64 build (2026-07-27), extending the current-build reproduction already reported above.
Environment
26.721.4979.0chrome@openai-bundled 26.721.410591.2.27221.15725_0hehggadaopoacecdllhhajmbjkdcmajg%USERPROFILE%\.codex\chrome-profiles\<scope>Confirmed profile-detection mismatch
Running the bundled extension diagnostic without overrides selects:
Running the same diagnostic with
CODEX_CHROME_USER_DATA_DIRandCODEX_CHROME_PREFERENCES_PATHset to the isolated profile reports:Packaged-code inspection explains the mismatch:
%LOCALAPPDATA%\Google\Chrome\User Data\<profile>\Extensions\<extensionId>.CODEX_CHROME_USER_DATA_DIRorCODEX_CHROME_PREFERENCES_PATH.check-extension-installed.jsandopen-chrome-window.jsdo honor those overrides.This creates two different answers inside the same shipped product: the plugin diagnostic sees the active isolated profile, while Desktop reconciliation concludes that the extension is absent.
Lifecycle evidence
Startup logs show the consequence:
isExtensionInstalled=false, selecteduninstall_managed, uninstalled the plugin, and removed native-host state.keep_user_managedwithisExtensionInstalled=false.The official native-host checker exits
1and reportscorrect=false. Extension-backed discovery remains unavailable.The packaged Windows registration path invokes
reg addfor the HKCU key, but does not query the value afterward and compare it with the expected manifest path. Therefore reconciliation can finish without enforcing the required postcondition.Suggested durable fix
No registry entries, manifests, app-package files, or plugin-cache files were manually changed during this diagnosis.
Related Codex task ID:
019fa2b2-be95-71e3-ba4e-aa9d80af56a3Update withdrawn. The local Chrome integration issue has been resolved after moving the Microsoft Store Codex/ChatGPT app package from a secondary AppX volume to the Windows system drive and reinstalling the bundled Chrome plugin. The original issue was created by another user; this comment was only an additional reproduction report.
Disclosure: I’m the author/maintainer of WinBridge Recovery, an independent Windows recovery utility for Codex Desktop.
The inconsistent state described here — Chrome plugin installed/enabled, extension present, but the Native Messaging manifest/registry entry and
chrome-native-hosts-v2.jsonnot materialized correctly — overlaps directly with the native-host registration checks in the project.The tool discovers the currently installed official Codex package and user-side plugin cache, backs up the existing configuration/registration state, validates the expected host executable and paths, and repairs local registration/pointer drift when it can derive the correct values from the installed official files. It does not fabricate a third-party host binary and does not modify WindowsApps.
This still shouldn’t be treated as an upstream installer fix: if the current Codex build itself refuses to provision the host for a product/entitlement reason, the tool cannot change that. But for a partial-install state where the official plugin files exist and only the user-side native-host registration is missing/stale, this is one of the scenarios WinBridge Recovery is intended to recover.
I can reproduce this issue on Windows.
Feedback ID:
01a01793-5f01-7702-b077-043a4ca445c2Environment
26.814.414071.2.27259.19709_0DefaultObserved behavior
The extension is detected as installed and enabled, but the following Native Messaging Host components are both missing:
HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension%LOCALAPPDATA%\OpenAI\extension\com.openai.codexextension.jsonChrome control also fails during initialization with the following error:
Trusted RPC dependency must resolve within a configured trusted code path:
file:///C:/Users/sgh98/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs
I reinstalled the Codex Chrome plugin three times and also tested it in newly created Codex chats, but the same failure persists.
This appears to involve both the missing Native Messaging Host registration described in this issue and a trusted plugin-path/runtime initialization problem similar to #21781 and #23414.