Codex Desktop 26.707.71524: Browser and Chrome plugins fail with `Cannot redefine property: process`
What version of the Codex App are you using (From “About Codex” dialog)?
26.707.71524 (Build 5263)
What subscription do you have?
Unknown (signed-in ChatGPT account)
What platform is your computer?
Darwin 25.5.0 arm64 arm
What issue are you seeing?
Both bundled browser integrations fail before browser runtime setup:
- In-app Browser plugin
- Chrome plugin
Importing either bundled browser-client.mjs immediately throws:
TypeError: Cannot redefine property: process
Affected paths:
~/.codex/plugins/cache/openai-bundled/browser/26.707.71524/scripts/browser-client.mjs~/.codex/plugins/cache/openai-bundled/chrome/26.707.71524/scripts/browser-client.mjs
This happens before extension handshake, page navigation, or application code runs. The same environment worked with plugin version 26.707.62119 before the bundled plugin update.
What steps can reproduce the bug?
- Run Codex Desktop
26.707.71524(Build5263) on Apple Silicon macOS. - Install/enable the bundled Browser or Chrome plugin version
26.707.71524. - In a Codex task, initialize the Node REPL and import the plugin client as instructed by the plugin skill:
const { setupBrowserRuntime } = await import(
"~/.codex/plugins/cache/openai-bundled/browser/26.707.71524/scripts/browser-client.mjs"
);
await setupBrowserRuntime({ globals: globalThis });
- The import fails immediately with
TypeError: Cannot redefine property: process. - Repeat with the Chrome plugin path; it fails with the same error.
Troubleshooting already attempted, with no change:
- Restarted Codex Desktop
- Reinstalled the bundled Codex browser plugin
- Reinstalled the Chrome extension
- Reset the Codex workspace
- Retried with a fresh signed-in page/session
No application URL or authentication state is required to reproduce because the exception occurs during module import.
What is the expected behavior?
The bundled client should import successfully, register the browser backend, and allow setupBrowserRuntime to complete. Existing globalThis.process metadata provided by the Node REPL should not cause plugin initialization to fail.
Additional information
The generated client appears to initialize a process shim at module load time, including assignments equivalent to:
globalThis.process = processShim;
globalThis.global = globalThis.global ?? globalThis;
globalThis.global.process = processShim;
The Node REPL runtime already exposes a protected/non-configurable process property, so this appears to be a compatibility regression in the current bundled plugin.
Regression information:
- Working plugin version:
26.707.62119 - Failing plugin version:
26.707.71524 - Codex Desktop:
26.707.71524(Build5263) - Both Browser and Chrome integrations are affected
Possibly related reports:
56 Comments
same here
Independent reproduction confirmed on macOS (Darwin 25.5.0, arm64).
Environment:
26.707.71524(Build5263)26.707.7152426.707.71524browser-client.mjsfiles are byte-identical (same SHA-256)Observed result:
TypeError: Cannot redefine property: processbrowser-client.mjs:33:22, atglobalThis.process = processShim.Troubleshooting confirmed:
26.707.71524bundle and does not help.Impact: all workflows that require the in-app browser or the user's signed-in Chrome session are blocked in this build.
I've noticed this happened in the latest release just few hours ago.
Feedback ID: 019f5e63-f4d0-7c40-bc96-8cfa8ba629bd
I hit the same issue on macOS with ChatGPT/Codex Desktop
26.707.71524(Build5263):Both the Chrome plugin and the built-in Browser plugin were affected.
Root cause
The generated
browser-client.mjsattempts to overwriteglobalThis.process:In the current Codex Node REPL runtime,
processis protected/non-configurable, so the plugin fails during initialization.Simply removing those assignments is not enough. That gets past the first error, but bundled dependencies later fail with:
Temporary local patch
I asked Codex/AI to patch the two cached plugin files:
For me,
<version>was26.707.71524.First, make backups of both files. Then replace:
with:
This keeps
processandglobalmodule-scoped and gives bundled dependencies the expected process shim without attempting to redefine the protectedglobalThis.process.Prompt you can give to Codex/AI
Verification
After applying the patch, I verified:
node --check.https://www.google.com/with the titleGoogle.Impact and risks
This is an unsupported local workaround, not an upstream fix.
It only changes cached browser plugin bootstrap files. It does not modify:
/Applications/ChatGPT.appbundleNormal Codex functionality should therefore remain unaffected, but the Chrome/Browser plugins should still be tested after applying it.
A future ChatGPT/Codex update or plugin cache refresh may overwrite the patched files. That is expected and is preferable to permanently modifying the application bundle. After an update:
Downgrading the entire application was not necessary in my case. This cache-only patch restored Chrome control while keeping the application bundle untouched.
---
I ran into this after updating as well. It completely broke Chrome usage.
Additional reproduction with a useful version/OS control:
26.707.71524(Build5263)150.0.7871.1151.2.27203.26575_0Checks completed:
26.707.71524files and does not change the failure.browser-client.mjs:33:22onglobalThis.process = processShim, before any Chrome/native-messaging handshake or macOS accessibility interaction.Regression control:
26.707.62119imported and reached browser setup on this same Mac before the Codex/plugin update.26.707.71524bundle fails deterministically during module evaluation.Because the exception occurs before browser discovery or OS permission checks, this reproduction strongly points to a bundled browser-client / Node REPL compatibility regression rather than a Chrome extension, native-host, or macOS privacy-permission failure.
I can reproduce the same regression on Windows.
Environment:
OpenAI.Codex_26.707.9564.0_x6426.707.7152426.707.71524codex plugin listFailure:
chrome/.../scripts/browser-client.mjsfails immediately with:Cannot redefine property: processagent.browsers.get("extension"), tab discovery, extension handshake, navigation, or authentication.Regression evidence:
26.707.62119worked earlier in the same environment.26.707.71524, the old version directory was removed and the new version began failing with this exception.latestjunction both point to26.707.71524.Troubleshooting attempted without improvement:
This appears to be a cross-platform compatibility regression in the generated browser client/process shim rather than a Chrome extension, tab, login, or native-host problem. On Windows it prevents all Chrome-backed Codex workflows, so no browser work can proceed.
Could an OpenAI maintainer please confirm whether this is a known regression in
26.707.71524, and advise whether there is a supported workaround, rollback path, or fixed plugin/app version available? This currently blocks all Chrome-dependent work on the affected Windows installation, so a response or recommended recovery procedure would be greatly appreciated.Independent reproduction on macOS arm64 with Codex Desktop
26.707.71524(build5263)./Applications/ChatGPT.app/Contents/Resources/plugins/openai-bundled/plugins/chrome/scripts/browser-client.mjs:33:22TypeError: Cannot redefine property: processglobalThis.processin the ordinary REPL succeeds; the failure appears specifically while the imported module is evaluated inSourceTextModule. That points to a compatibility change in the module sandbox/runtime interaction, rather than Chrome or extension state.The app-bundled client reproducing the fault means a stale plugin cache alone is not a workaround.
Additional reproduction details from a Chrome-extension setup:
26.707.71524(Build5263)26.707.715241.2.27203.26575Defaultprofilecom.openai.codexextensionand the expected extension originThe Chrome plugin still fails during
browser-client.mjsimport with:The failure occurs before
agent.browsers.get("extension"), tab enumeration, or any page interaction.The error persists after:
No browsing history, page URL, or authenticated-site state is involved in reproducing the failure.
+1
---
https://chromewebstore.google.com/detail/hehggadaopoacecdllhhajmbjkdcmajg
cannot open it
Independent reproduction on macOS with the same desktop/plugin build.
26.707.71524codex-cli 0.144.2chrome@26.707.71524TypeError: Cannot redefine property: processscripts/browser-client.mjs:33:22The error occurs during the documented module import, before
setupBrowserRuntime, Chrome discovery, extension communication, permission checks, or CDP access.Also reproduced after:
A separate report was initially opened as #32934 before this exact existing issue was found; it is being closed as a duplicate.
downgrading to 26.707.62119 fixes it https://persistent.oaistatic.com/codex-app-prod/ChatGPT-darwin-arm64-26.707.62119.zip
Additional reproduction and root-cause evidence from Codex Desktop / Browser plugin 26.707.71524:
browser-client.mjs:33:22on the unconditionalglobalThis.process = processShimassignment.57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6.TypeError: Cannot read properties of undefined (reading 'node')from code expectingprocess.versions.node.processShimthen exposesTypeError: global.process.on is not a functionin the bundled monitoring integration.Suggested source-level fix:
globalfacade whoseprocesspoints to that shim.globalThis.processor the Node REPL host global.setupBrowserRuntime, and performs in-app browser discovery.All experimental edits to the cached generated bundle were reverted after diagnosis.
Reproduced in a ChatGPT desktop/Codex task on macOS while trying to use the bundled Browser plugin with an already open Azure session.
Following the documented Browser setup, the runtime fails immediately with:
A subsequent check showed no initialized browser binding (
hasAgent: false,hasBrowsers: false,browser: false). The failure occurs before browser discovery, tab access, authentication, or navigation, so it blocks browser-assisted work that depends on an existing session. No credentials, cookies, or page contents were inspected.Impact: unable to help the user access or manage Azure through their open browser session. Please prioritize a compatibility fix between the bundled Browser client and the Node REPL runtime.
Windows reproduction of the same issue:
.cache/codex-runtimes/codex-primary-runtime); system Node v26.4.0 is not involved.chrome@openai-bundledauto-updated from 26.707.62119 → 26.707.71524 on 2026-07-13 (~17:41–19:58 local). 26.707.62119 had completed a full browser session successfully on the same machine minutes before the update.``
``TypeError: Cannot redefine property: process
at ~/.codex/plugins/cache/openai-bundled/chrome/26.707.71524/scripts/browser-client.mjs:33:22
Line 33 is
globalThis.process = processShim;(line 35globalThis.global.process = processShim;).codex update(already latest), fresh processes.latestcached copies are byte-identical, and the bundle SHA256 matches the trusted hash list (NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S) in the local config.browser@openai-bundledandcomputer-use@openai-bundledalso jumped to 26.707.71524 in the same auto-update.Independent reproduction on macOS:
26.707.71524(Build5263)26.707.71524browser-client.mjsfiles are byte-identical57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6TypeError: Cannot redefine property: processscripts/browser-client.mjs:33:22Reproduces after fully restarting Codex, resetting the Node REPL kernel, retrying in the same and fresh runtime state, and testing both the in-app Browser and Chrome integrations. The failure occurs during module import, before browser discovery or extension communication. Codex reports itself as the latest available version.
Independent reproduction from another macOS team:
26.707.71524.browser-client.mjs:33:22withTypeError: Cannot redefine property: process.Impact: all workflows requiring the in-app browser or an existing signed-in Chrome session are blocked. No cookies, credentials, page content, project names, or target URLs were accessed or included in this reproduction.
was just about to file same bug, yeah crazy that this bug is in release. can't use Codex in Chrome plugin without a patch
Independent Windows reproduction and verified workaround:
26.707.9564.026.707.715240.144.2v24.14.01.2.27203.26575browser-client.mjsSHA-256:57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6The import failed consistently at
browser-client.mjs:33:22withTypeError: Cannot redefine property: process. Windows Repair, app restart, and plugin remove/re-add attempts did not change the failure.A cache-only patch that keeps the shim module-local instead of assigning to protected runtime globals restored initialization:
After resetting the browser runtime, the Chrome extension connection succeeded and reported
connected: true; existing tabs were discoverable. This confirms the failure is in the bundled bootstrap/global collision rather than the Chrome extension handshake or website state.No account identifiers, local usernames, task IDs, URLs, credentials, cookies, or browsing data are included.
Independent reproduction on Codex app
26.707.71524/ bundled Chrome plugin26.707.71524:26.707.62119worked in the same workflow.globalThis.process = processShim.TypeError: Cannot redefine property: process.setupBrowserRuntime, browser discovery, extension/native-host communication, tab inspection, authentication, or prompt submission.I initially filed #32946 before discovering this report; #32946 has been closed as a duplicate so tracking remains consolidated here.
Independent macOS reproduction — please prioritize a signed fix or rollback.
This blocks paid users signed-in Chrome workflows. Please ship a signed compatible fix or rollback; end users should not need to patch bundled cache files.
Independent reproduction confirmed on macOS.
Environment:
26.5(25F71)26.707.71524(Build5263)150.0.7871.11426.707.7152426.707.71524Both bundled
browser-client.mjsfiles are byte-identical:SHA-256: 57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6Exact failure:
Observed behavior:
26.707.71524update.Additional diagnostic:
browser-client.mjsimports successfully under ordinary Node.jsv22.14.0.processis protected/non-configurable while the bundled browser client attempts to overwrite it.Impact:
All workflows requiring the signed-in Chrome session or the built-in Browser are blocked.
I have not modified the bundled plugin files or applied the unofficial cache patch.
Reproduced this on macOS arm64 with Node v22.22.0, using the cached bundle at
~/.codex/plugins/cache/openai-bundled/browser/26.707.71524/scripts/browser-client.mjs.Root cause: the bundle has a prelude (before the minified code) that unconditionally overwrites the process global at import time:
What I observed:
node, the import succeeds but silently replaces the realprocess— after import,process.pidis 0,process.envis empty, andprocess.versionreports "v20.0.0". So it corrupts the runtime even where it doesn't throw.processis read-only on the global, import throwsTypeError: Cannot assign to read only property 'process'.process(which matches the Codex Desktop REPL), running the prelude throws the exact error from this issue:TypeError: Cannot redefine property: process.This looks like a browser-platform
processpolyfill banner applied to a Node-targeted build. Guarding it withif (typeof globalThis.process === "undefined") { ... }(or dropping the shim for the Node target) should fix it.Local workaround until then: edit the cached
browser-client.mjsand wrap the three assignment lines above in that same guard.I can reproduce this regression on macOS.
On the same machine, Chrome plugin
26.707.31428initialized successfully on 2026-07-10. After updating to26.707.71524(ChatGPT/Codex Desktop build 5263), the import fails atbrowser-client.mjs:33:22with:The failure happens before
setupBrowserRuntime, browser discovery, or the Chrome extension/native-host handshake. This confirms a regression in the bundledbrowser-client/ Node REPL integration rather than Chrome profile or extension state.A source-level fix should keep the full process shim module-scoped, provide bundled CommonJS dependencies with a module-scoped
global.processfacade, and avoid mutating the protected hostglobalThis.process. A regression test should import the built client inside the trusted Node REPL module context and verify thatsetupBrowserRuntimereaches browser discovery.I'm willing to contribute the source-level fix and regression test. If an external contribution would be useful, please point me to the relevant source location and explicitly invite a PR.
Adding a Windows reproduction of this exact regression.
Environment:
OpenAI.Codex 26.707.9564.026.707.715241.2.27203.26575Observed failure:
The exception occurs while importing the bundled
scripts/browser-client.mjs, beforesetupBrowserRuntime, Chrome tab discovery, or website interaction.Chrome-side verification completed successfully:
On all sitesTroubleshooting completed with no change:
extension-host.exenative helper.openai-bundled/chromeplugin directory while the native host was stopped.26.707.71524.Cannot redefine property: processerror.This confirms the failure is reproducible on Windows and is not caused by Chrome permissions, profile state, website authentication, or a stale plugin cache. The generated client attempts to install its process shim into a runtime where
processis already protected/non-configurable.Confirmed on Windows x64 as well.
Environment
OpenAI.Codex_26.707.9564.0_x6426.707.7152425H2, build26200.8655, x64browser-client.mjsSHA-256:57EE77A283EB230C6C6D47353AF13A25CEC4C331B511868C8FBF7CCD3DD1B2F6Minimal reproduction
Object.getOwnPropertyDescriptor(globalThis, "process")returnsundefined, andglobalThis.agent?.browsersis absent.%USERPROFILE%\.codex\plugins\cache\openai-bundled\browser\26.707.71524\scripts\browser-client.mjsThe local bundle's line 33 is:
The Node REPL itself is healthy: minimal JavaScript calls succeed. Resetting the kernel and retrying from a clean state reproduces the same error. The failure happens before
setupBrowserRuntime, browser discovery, URL navigation, or application code. Standalone Playwright against the same local target works normally.This confirms the
26.707.71524plugin/runtime compatibility regression is cross-platform and is not the older Windows sandbox/helper-binary failure family.Independent reproduction on macOS with the bundled Chrome plugin
26.707.71524.The supported bootstrap import fails immediately with:
This occurs before browser discovery, extension handshake, tab inspection, or any target-site interaction. The same task previously worked with the earlier bundled plugin version
26.707.62119.Recovery attempts made with no change:
setupBrowserRuntime({ globals: globalThis })bootstrapThe open Chrome tab and its signed-in state remain intact, but Codex cannot attach to it. No account identifiers, URLs, cookies, authentication details, or payment information are included in this reproduction.
Seeing the same issue with both the built-in Browser and Chrome plugins on Windows.
26100.3775, x6426.707.7152426.707.7152426.707.715240.144.2Importing the bundled client fails immediately:
TypeError: Cannot redefine property: process
at browser-client.mjs:33:22
at SourceTextModule.evaluate (node:internal/vm/module:233:26)
The desktop logs show
browser_use_iab_backend_startup_readybefore the Browser import fails, so the in-app browser backend is running. The failure happens while loadingbrowser-client.mjs, beforesetupBrowserRuntime, browser discovery, extension communication, or navigation.Resetting the JavaScript kernel and trying again gives the same result with both plugins. Their
browser-client.mjsfiles are byte-identical and have the same SHA-256:57EE77A283EB230C6C6D47353AF13A25CEC4C331B511868C8FBF7CCD3DD1B2F6
macOS:
26.5.2 (25F84)ChatGPT:
26.707.71524Chrome:
150.0.7871.115 (Official Build) (arm64)Extension:
1.2.27203.26575too
Independent reproduction with one additional diagnostic that may help narrow the fix.
Environment
26.5.2(build25F84), Apple Silicon /arm6426.707.71524(build5263)26.707.71524browser-client.mjsSHA-256:57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6Result
The supported Browser bootstrap fails with:
I reproduced it in both:
node_replruntime.node_repl --disable-sandboxdirect-kernel diagnostic mode.The direct-kernel mode reaches the same failure, so the additional sandbox launcher is not the cause. Restarting, changing the agent model, and using a fresh ephemeral task do not change the result.
Read-only inspection shows the bundled runtime installs its trusted
processfacade using a non-writable, non-configurable property, while the bundled Browser client then attempts:This fails before an in-app Browser binding can be established or any page can be opened. No target website, login state, cookies, or application data are involved.
No local patch or trusted-hash change was applied because that would weaken the intended trusted Browser boundary. An upstream bundle/runtime compatibility fix is required.
Reproduced on Codex Desktop
26.707.9564.0(Windows x64) with the bundled Chrome controller26.707.71524.The supported bootstrap fails consistently, including in a clean runtime, before Chrome discovery:
Chrome is running, the extension is enabled, and the native-host checks pass.
Feedback ID:
019f5f72-e552-7a80-b2a0-703576341be1Additional macOS reproduction (2026-07-14):
This reproduces on a separate Apple Silicon Mac before any Chrome tab, site, login, or extension handshake is accessed.
Environment (redacted of serials/account data):
Fresh Node REPL reproduction:
Result:
Resetting the JS kernel and repeating the import produces the same result. This blocks Chrome Use entirely; the browser is never selected and no Jimeng/website action is attempted.
Separate user-impact note: after recent desktop updates, the user reports Chrome Use and Computer Use becoming unavailable frequently. I do not have a matching Computer Use stack trace in this report, so please treat that as a correlated reliability report rather than evidence of the same root cause. The reproducible Chrome bootstrap regression above is confirmed.
Product feedback / request for regression coverage:
Recent desktop updates have repeatedly made Chrome Use and Computer Use unavailable or unreliable in normal workflows. In this report, the Chrome failure is directly reproducible at bootstrap; separately, the user frequently experiences Computer Use failures after updates as well.
Please strengthen release-gating regression coverage across both surfaces, especially:
globalThis.processcase in the Node REPL, so generated browser clients cannot fail before backend discovery.The current issue is a high-impact regression because it blocks the only approved workflow for signed-in Chrome tasks before any browser action can begin.
Independent reproduction on macOS 26.5.1 (Build 25F80), arm64.
26.707.71524(Build5263)26.707.71524TypeError: Cannot redefine property: processbrowser-client.mjs:33:22The failure occurs before in-app browser discovery or page attachment. Restarting Codex, confirming the app is up to date, moving the Browser plugin cache aside, and allowing it to regenerate did not resolve the issue. The regenerated bundle remains version
26.707.71524and fails identically.Confirming this regression on Windows.
26.707.9564.026.707.715240.144.2The import fails at
browser-client.mjs:33:Codex’s trusted runtime already defines
processas non-writable and non-configurable, so this assignment throws:The error occurs before any Chrome-extension handshake and persists after restarting Codex, restarting Windows, and resetting the JavaScript kernel.
Confirmed on Windows x64.
My ChatGPT/Codex Desktop app version is
26.707.9564, and the bundled Chrome/Browser plugin version is26.707.71524.Both the Chrome plugin and the in-app Browser fail before any browser connection or tab discovery with:
TypeError: Cannot redefine property: process
The failure occurs when importing the bundled
browser-client.mjs, so this is not caused by a Chrome profile, extension permissions, or a website.I reproduced it after:
Independent macOS reproduction with a minimized runtime comparison.
Environment
26.707.71524(Build5263)0.144.227.0(Build26A5378n), Apple Silicon /arm6426.707.71524browser-client.mjsfiles are byte-identical:57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6Observed failure
The supported import fails deterministically before browser discovery:
The failing statement is:
This occurs before
setupBrowserRuntime,agent.browsers.get(...), Chrome-extension/native-host handshake, tab inspection, navigation, or any website/login state.Controls and recovery attempts
A useful differential: the same bundled file imports successfully under standalone system Node
v26.0.0, but fails in Codex's trustedSourceTextModulecontext. Read-only inspection shows that the trusted Codex runtime installs itsprocessfacade as non-writable and non-configurable, while the generated browser client unconditionally tries to replace it. This confirms the failure is at the bundled client/runtime boundary, not in Chrome or the target website.No local source patch, trusted-hash change, account data, cookies, or target-site information was used or included.
Adding another Windows reproduction with an exact Microsoft Store upgrade boundary and target-isolation check.
Environment
OpenAI.Codex_26.707.9564.0_x64__2p2nqsd0c76g0OpenAI.Codex_26.707.8479.0_x64__2p2nqsd0c76g026.707.71524Verified upgrade boundary
Windows deployment logs record the following package transition on July 14, 2026:
26.707.8479.0was removed.26.707.9564.0was registered immediately afterward.Built-in Browser control worked before the update and failed afterward.
Current failure
Importing the unmodified bundled Browser client from a fresh runtime fails immediately:
The failing source line is:
The failure occurs before
setupBrowserRuntime, Browser discovery, tab creation or navigation. Repeating from a clean runtime produces the same error.Target-isolation check
The intended local application at
http://127.0.0.1:4173/independently returns HTTP 200.The Browser crashes before accessing that URL or any other URL. Therefore, the failure is not caused by the website, localhost permissions, page authentication or application code.
No Browser plugin files were modified, and no unsupported package rollback was attempted.
Expected result
The trusted bundled Browser client should load without replacing the runtime’s protected
processvalue, then proceed to in-app Browser discovery and tab control.This regression currently blocks required end-to-end Browser QA on Windows.
Additional Windows reproduction with an RDP/session differential and a clean-runtime control.
Environment:
26.707.9564.026.707.71524v24.14.0browser-client.mjsSHA-256:57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6Controls:
WTSActive, protocol 2,WinSta0\\Default). The physical console had a different SessionId, which is normal for RDP and was not used as a readiness criterion.setupBrowserRuntime, extension binding, tab discovery, or any website action:The official skill call is correct:
Static and isolated-process checks:
globalThis.process = processShim;globalThis.processas a configurable getter and imports the file;latestand the installed skill both resolve to26.707.71524, so reinstalling the same version cannot change the result.This confirms the failure is at the generated browser-client/trusted-runtime boundary, independent of RDP, Chrome permissions, login state, or target URL. A regression test should cover importing the generated client when
globalThis.processis protected. The client should keep the shim lexical or conditionally preserve the runtime-owned property instead of overwriting it. No local bundle patch was applied in this reproduction.<img width="480" height="455" alt="Image" src="https://github.com/user-attachments/assets/3931db82-5810-4693-8011-96d342a72e4b" />
this new update fix this issue
Still reproducible on a newer ChatGPT desktop build:
26.707.72221(build5307)0.144.2~/.codex/plugins/cache/openai-bundled/chrome/26.707.51957/scripts/browser-client.mjsThe in-app browser itself opens
http://127.0.0.1:8000/and renders correctly when operated manually. Agent control fails before browser discovery while importing the bundled client:The failing module lines assign the process shim through both
globalThis.processandglobalThis.global.process. Resetting the Node-backed JavaScript kernel and retrying produces the same error. This confirms the regression affects agent-to-browser control, not the browser UI or target localhost app.Thanks for the bug reports. We've published an updated version (26.707.72221) that addresses this problem.
This issue is closed, but I am still experiencing the same issues on
If you're still seeing this with 26.707.72221, you may need to quit and restart the app to update the plugin.
I uninstalled and re-installed the plugins, rebooted... no avail.
If you're able to share
/feedback, we can take a look and see what might be wrongDone, 019f61b9-e2c3-7463-84b1-8ef83806f1e3
Thank you
Looking into why this may have happened to you, but in the meantime, deleting (or asking codex to delete)
~/.codex/plugins/cache/openai-bundled/browser/26.623.141536/and restarting codex should help -- looks like an outdated browser plugin sticking aroundFeedback ID:
019f5e36-bb0a-78f3-9128-f5a04e1f6312Still reproducible on macOS / Apple Silicon after the ChatGPT app reports
26.707.72221(build5307) as the newest available.The app-bundled Chrome client now works when loaded explicitly, but the normal
openai-bundledmarketplace snapshot still advertises onlychrome@26.707.51957. Deleting its cache directory causes Codex to recreate that same version; a clean standard bootstrap of the recreated cached client still fails atbrowser-client.mjs:33withCannot redefine property: process.This appears to be a stale bundled-marketplace snapshot rather than a browser, extension, or app-update problem.
I can confirm it is fixed, at least it can control Chrome now.
Btw, because of this issue, I tried to have the model review the
.mjsfile:Review the .mjs file from your "Chrome Control/Browser Use" skill., but it was blocked by the security policy (It thinks I'm conducting cybersecurity research but I'm just an end user).I only want to review a file that already exists on my local machine, as a user, to check whether it poses any supply chain security risks, or any other bugs. I'm not sure I understand why this is being blocked.
Codex Chrome Plugin Repair Guide
Overview
This document summarizes a successful repair of the bundled Chrome plugin in the Codex desktop application. The failure occurred when newly created tasks could not load the Chrome control skill, even though the Chrome extension itself was installed and enabled.
The main lesson is that a damaged plugin cache may be only a symptom. Codex can repeatedly rebuild that cache from an outdated bundled marketplace copy, so the entire plugin loading chain must be inspected.
Observed Symptoms
chrome:control-chromeskill.node_replwere available.Root Cause
Several Codex plugin layers were out of sync:
26.707.72221.26.707.62119.26.707.62119.latestdirectory junction continued to point to the old cache directory.extension-hostprocess remained alive across a Codex restart and continued using the old path.The original cache had also been incomplete and was missing a valid
.codex-plugin/plugin.json. Repairing that file alone was insufficient because Codex continued sourcing the plugin from the stale marketplace copy.Component Model
The relevant loading chain is:
Each layer must reference a compatible and current plugin installation.
Modern versions of the bundled Chrome plugin may use a skill plus
node_replrather than exposing a separate Chrome MCP server. Therefore, the absence of aserver_name=chromeentry is not sufficient evidence of failure. The decisive signal is whether a newly created task receives thechrome:control-chromeskill and can establish a real browser connection.Diagnostic Procedure
1. Verify the Chrome extension
Confirm that:
If these checks pass, do not assume the browser extension is the source of the problem.
2. Verify native messaging
Check both:
The manifest should contain:
extension-host.exethrough the plugin'slatestdirectory.3. Inspect Codex plugin loader logs
Look for messages such as:
Record the exact plugin ID and cache path shown in the log. This establishes which cache directory Codex is actually trying to load.
4. Compare all plugin versions
Compare the manifests in these locations:
The application resource version is the reference version. If the temporary marketplace is older, cache reloads will continue reproducing the old installation.
5. Inspect the running extension host
Check whether
extension-hostis still running and determine which plugin path it uses. A surviving old process can keep the old junction or binaries in use even after Codex restarts.Repair Procedure
1. Preserve rollback copies
Before changing plugin state, back up:
Keep these backups until an end-to-end browser test succeeds.
2. Replace stale marketplace content
Replace the outdated temporary marketplace copies of the affected bundled plugins with the versions shipped in the current Codex application resources.
The related components may include:
browserchromecomputer-useThis corrects the source from which Codex rebuilds its cache.
3. Restart Codex
Fully exit and reopen Codex after replacing the stale marketplace content. Then verify that Codex creates a cache directory matching the current bundled plugin version.
4. Stop the old extension host
If an old
extension-hostprocess is still running, stop it before changing thelatestdirectory junction.5. Update the
latestjunctionPoint the plugin's
latestjunction to the current version directory.On Windows PowerShell 5.1,
Remove-Itemmay fail when removing a directory junction and can produce a null-reference error. A safe alternative is to remove only the junction with the .NET directory API, after validating the absolute path and confirming that the target is a junction:The second argument must remain
falseso that the operation removes the junction itself rather than recursively deleting the target directory.6. Reinstall the native host manifest
Run the current plugin's official
installManifest.mjsscript with the active Codex, Node.js, and Node REPL runtime paths.This updates:
extension-host-config.json.7. Run the bundled verification scripts
Use the plugin's official checks to confirm:
End-to-End Verification
File and registry checks are necessary but not sufficient. The final test must reproduce the original user workflow:
chrome:control-chromefrom the current version directory.The issue is resolved only when this complete workflow succeeds. A repaired directory tree alone does not prove that task-level plugin injection is working.
What Did Not Solve the Problem
The following actions were insufficient by themselves:
latestjunction before correcting the source version and stopping the old extension host.Operational Lessons
Quick Troubleshooting Checklist
.codex-plugin/plugin.jsonexists and is valid.latestpoints to the current version directory.extension-hostprocess remains active.chrome:control-chrome.This is still a problem. MacOS, ChatGPT/Codex Desktop 26.715.31925. After removing both Chrome/Browser plugins/directories and reinstalling I get version 26.707.51957 of Chrome/Browser plugin. I patched the code as described above and then it works.
This is still reproducible on Windows with a newer Codex Desktop build.
Environment:
chrome/lateststill resolves to26.623.141536From a fresh browser-control runtime, importing the bundled client fails immediately with:
TypeError: Cannot redefine property: process
at browser-client.mjs:33:22
The failing statement is:
globalThis.process = processShim;
Resetting the browser-control runtime and retrying produces the same result. The failure occurs before the in-app Browser can enumerate or access any tabs.
Although this issue was marked completed after 26.707.72221, the newer desktop app is still resolving an outdated bundled plugin. This may be related to the stale managed marketplace/cache behavior reported in #33738:
https://github.com/openai/codex/issues/33738
Could this issue be reopened, or could you point us to the current tracking issue for the stale bundled-plugin update problem?
Update: I submitted in-app feedback with the conversation diagnostics.
Feedback ID: 019f7748-53cb-78f3-80e0-ec9225d47b9b
Please associate this feedback with the issue.