Codex Desktop 26.707.71524: Browser and Chrome plugins fail with "Cannot redefine property: process"

Open 💬 6 comments Opened Jul 14, 2026 by Alexonylll
💡 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.71524 (Build 5263)

What subscription do you have?

ChatGPT Pro

What platform is your computer?

Darwin 25.5.0 arm64 arm

What issue are you seeing?

After updating Codex Desktop from 26.707.62119 to 26.707.71524, both the bundled Browser plugin and the Chrome plugin fail during initialization, before browser or tab discovery.

Full error (home directory redacted):

TypeError: Cannot redefine property: process
    at ~/.codex/plugins/cache/openai-bundled/{browser|chrome}/26.707.71524/scripts/browser-client.mjs:33:22
    at SourceTextModule.evaluate (node:internal/vm/module:233:26)
    at importResolved (.../kernel.js:905:27)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)

The same failure occurs for both the in-app browser and Chrome extension integration. It happens before connecting to any page, so it is unrelated to the target website or authentication state. Fully quitting and restarting Codex does not resolve it.

What steps can reproduce the bug?

  1. Install or update Codex Desktop to 26.707.71524 (Build 5263).
  2. Enable the bundled Browser plugin or Chrome plugin.
  3. Start a fresh task.
  4. Ask Codex to connect to the in-app browser or an existing Chrome tab.
  5. Browser runtime initialization fails immediately with Cannot redefine property: process.

This reproduced repeatedly in clean task runtimes. Version 26.707.62119 worked with the same browser setup on the previous day.

What is the expected behavior?

The browser runtime should initialize and connect to the selected in-app browser or Chrome extension session.

Additional information

The generated browser client starts with:

globalThis.process = processShim;
globalThis.global = globalThis.global ?? globalThis;
globalThis.global.process = processShim;

In this runtime, globalThis.global === globalThis. The error is raised at the final assignment. Both bundled plugin entry points contain the same initialization code.

No account identifiers, task IDs, cookies, target URLs, or local project paths are included in this report.

View original on GitHub ↗

6 Comments

github-actions[bot] contributor · 7 days ago

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

  • #32925
  • #32936
  • #32935
  • #32934

Powered by Codex Action

danleecomp · 6 days ago

Same issue here with the bundled Browser plugin on Codex Desktop 26.707.71524 (Build 5263).

My environment:

  • Browser plugin: openai-bundled/browser/26.707.71524
  • Codex CLI: 0.144.2
  • Platform: Darwin 25.0.0 arm64 arm

I removed the plugin, wiped the entire Browser plugin cache, reinstalled it, and reset the Node REPL kernel. Nothing changed. The clean bundle still failed with:

Cannot redefine property: process

I tried a few small changes to find out exactly where it was breaking.

Just making the global assignments conditional was not enough. It failed next with:

Cannot read properties of undefined (reading 'node')

That came from process.versions.node.

I then bound the plugin's own processShim locally. That fixed the versions.node error, but the next failure was:

global.process.on is not a function

This is the patch that actually worked for me:

   };

+  const process = processShim;
+  const global = {
+    eval: globalThis.eval,
+    process: processShim,
+  };
+
-  globalThis.process = processShim;
+  if (typeof globalThis.process === "undefined") {
+    globalThis.process = processShim;
+  }
+
   globalThis.global = globalThis.global ?? globalThis;
-  globalThis.global.process = processShim;
+  if (typeof globalThis.global.process === "undefined") {
+    globalThis.global.process = processShim;
+  }

After applying it and resetting the Node REPL kernel:

  • setupBrowserRuntime({ globals: globalThis }) worked.
  • agent.browsers.get("iab") worked.
  • I could list and claim the two Browser tabs that were already open.

I only tested the bundled Browser plugin. I did not apply or test this against the Chrome plugin.

The fix was to keep the plugin's process shim local and avoid overwriting the Node REPL process object.

aviad-benhamo · 6 days ago

I can confirm I'm seeing the same regression on Windows after updating to Codex 26.707.71524.

Environment:

  • Codex: 26.707.71524
  • Windows 11 Pro 25H2 (Build 26200.8737)
  • Chrome 150.0.7871.115 (Official Build, 64-bit)

Before this update, both browser integrations worked correctly. After updating, browser initialization fails with the same TypeError: Cannot redefine property: process error.

I reproduced this with both the bundled Browser plugin and the Chrome plugin. The failure occurs before interacting with the target website, so it does not appear to be related to any specific page or local project.

Just adding another independent confirmation that this is reproducible on Windows as well. Thanks for the detailed investigation.

richardzzp · 6 days ago

上面那个补丁验证有用,帮大忙

lavapapa · 6 days ago

Independent confirmation from another macOS arm64 desktop installation (Codex Desktop 26.707.71524, build 5263).

The failure is reproducible from a fresh managed JavaScript kernel:

const { setupBrowserRuntime } = await import(
  "~/.codex/plugins/cache/openai-bundled/browser/26.707.71524/scripts/browser-client.mjs"
);
await setupBrowserRuntime({ globals: globalThis });

It immediately returns:

Cannot redefine property: process

Resetting the JavaScript kernel and retrying produces the same result.

One extra diagnostic: in the same app session the in-app Browser backend itself reports available=true and successfully reaches browser_use_iab_backend_startup_ready; the bundled Node runtime is v24.14.0. Therefore this is not a network, website, login, or IAB-pipe reachability failure. The exception happens before browser discovery (agent.browsers.list() / tab selection) can run.

The Browser and Chrome plugin entry points are byte-identical here (same browser-client.mjs SHA-256: 57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6). That further supports a shared bootstrap/runtime compatibility regression.

Jarod-Xie · 6 days ago

Confirmed on Codex Desktop 26.707.71524 (Build 5263) with the bundled Browser plugin.

I tested a smaller local workaround that keeps both ambient process and global.process module-local, without mutating the trusted runtime globals:

-globalThis.process = processShim;
-globalThis.global = globalThis.global ?? globalThis;
-globalThis.global.process = processShim;
+const process = processShim;
+const global = Object.create(globalThis);
+Object.defineProperty(global, "process", { value: processShim });

Object.defineProperty matters here. A normal global.process = processShim assignment still fails because the local object inherits the runtime-owned non-writable process property.

Validation performed in a fresh JavaScript kernel:

  • Unmodified bundle SHA-256: 57ee77a283eb230c6c6d47353af13a25cec4c331b511868c8fbf7ccd3dd1b2f6
  • Unmodified bundle reproduced Cannot redefine property: process at browser-client.mjs:33
  • setupBrowserRuntime({ globals: globalThis }) completed after the patch
  • The caller-visible global process descriptor remained unchanged
  • agent.browsers.getDefault() selected the Codex in-app browser
  • browser.tabs.list() completed successfully
  • Creating, reading, and closing an about:blank tab completed successfully

Patched bundle SHA-256: 154960090235d54c999b4df84cab8e9219f31b2b8ca11dad8eeb2ad6f1060c73.

Only the bundled Browser plugin was patched and tested. Reinstalling the plugin or updating Codex will overwrite this local workaround.