Repository navigation
Codex Desktop 26.707.71524: Browser and Chrome plugins fail with Cannot redefine property: process #32925
Description
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:
- Windows Codex Desktop crashed during in-app Browser use; bundled Browser plugin cache refreshed and old path disappeared #31115
- Codex IAB browser-client trust/nativePipe failure; Chromium launch fallback fails on macOS 26 #28752
- Codex Browser/Chrome plugins installed, but no browser backend registers;
agent.browsers.list()stays empty #26470 - Chrome plugin disappeared from Codex App marketplace after update; cached browser-client is not trusted #23831
Activity
yana9i commentedon Jul 14, 2026
same here
kawalalin800 commentedon Jul 14, 2026
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.
Jerrynet commentedon Jul 14, 2026
I've noticed this happened in the latest release just few hours ago.
ostomachion commentedon Jul 14, 2026
Feedback ID: 019f5e63-f4d0-7c40-bc96-8cfa8ba629bd
wuziqian-coder commentedon Jul 14, 2026
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.
mmcco commentedon Jul 14, 2026
I ran into this after updating as well. It completely broke Chrome usage.
vincent-lwj commentedon Jul 14, 2026
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.
katsuyasunake-hash commentedon Jul 14, 2026
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.
katsuyasunake-hash commentedon Jul 14, 2026
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.mmcco commentedon Jul 14, 2026
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.
TrojanGo commentedon Jul 14, 2026
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.
32 remaining items
sean-S2G commentedon Jul 14, 2026
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.etraut-openai commentedon Jul 14, 2026
Thanks for the bug reports. We've published an updated version (26.707.72221) that addresses this problem.
wbroder commentedon Jul 14, 2026
This issue is closed, but I am still experiencing the same issues on
etraut-openai commentedon Jul 14, 2026
If you're still seeing this with 26.707.72221, you may need to quit and restart the app to update the plugin.
wbroder commentedon Jul 14, 2026
I uninstalled and re-installed the plugins, rebooted... no avail.
johnl-oai commentedon Jul 14, 2026
If you're able to share
/feedback, we can take a look and see what might be wrongwbroder commentedon Jul 14, 2026
Done, 019f61b9-e2c3-7463-84b1-8ef83806f1e3
Thank you
johnl-oai commentedon Jul 14, 2026
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 aroundmmcco commentedon Jul 15, 2026
Feedback 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.
jyxjjj commentedon Jul 15, 2026
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.
jaikensai888 commentedon Jul 15, 2026
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.CoffeeSith commentedon Jul 18, 2026
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.
MurphyPotato commentedon Jul 18, 2026
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:
#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.
sushant96702 commentedon Jul 23, 2026
Still facing it on my windows