[macOS] Chrome and Browser plugins fail during bootstrap: Cannot redefine property: process

Open 💬 8 comments Opened Jul 14, 2026 by Zhaojing-Li
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Environment:

  • ChatGPT Desktop: 26.707.71524, build 5263
  • Bundled Codex CLI: 0.144.2
  • macOS: 26.5.2 (25F84), arm64
  • Google Chrome: 150.0.7871.115
  • Chrome plugin: openai-bundled/chrome 26.707.71524

Issue:
The official Chrome plugin cannot initialize. Loading the bundled
browser-client.mjs and calling setupBrowserRuntime({ globals: globalThis })
immediately fails with:

Cannot redefine property: process

The failure happens before Chrome tab discovery or page interaction.

Reproduction:

  1. Install and enable the official Chrome plugin.
  2. Start Google Chrome.
  3. In Codex Desktop, invoke @Chrome and request a read-only tab listing.
  4. browser-client bootstrap fails immediately.
  5. Restart Codex Desktop and retry; the same error remains.

Diagnostics:

  • Chrome is installed and running.
  • Native Messaging Host manifest exists and is valid.
  • Expected extension origin is configured correctly.
  • Plugin cache version is 26.707.71524.
  • The same initialization error also occurs through the bundled in-app

Browser runtime.

  • Extension detection separately receives EPERM while reading Chrome's

Local State, but the process-property failure occurs earlier during
runtime bootstrap.

Expected:
The bundled browser runtime should initialize and allow listing Chrome tabs.

Impact:
Both Chrome automation and the in-app Browser path are blocked. Restarting
does not recover the integration. Please prioritize a fix or provide an
official workaround.

View original on GitHub ↗

8 Comments

github-actions[bot] contributor · 6 days ago

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

  • #32925
  • #32938
  • #32936
  • #32951
  • #32941

Powered by Codex Action

Zhaojing-Li · 6 days ago

Additional diagnostic detail: bootstrap fails before globalThis.agent is
created, so agent.browsers.get("extension") and tab discovery are never
reached. The same failure reproduces with both bundled Chrome and Browser
plugin runtimes.

123tommy23-eng · 6 days ago

Reproduced in Codex Desktop while invoking the bundled @chrome plugin against an existing signed-in Chrome tab.

The browser runtime fails immediately during initialization with:

Cannot redefine property: process

This happened on repeated attempts, including after resetting the Node runtime and retrying the connection. It fails before Chrome tab discovery or any access to the target page, so the Chrome-control workflow is fully blocked. No browser content, credentials, or candidate data was accessed.

pingana · 6 days ago

I can reproduce the same issue on Windows. Chrome plugin version: 26.707.71524. The error occurs during setupBrowserRuntime({ globals: globalThis }) before browser discovery. Repairing and reinstalling Codex, reinstalling the browser extension, restarting the app, and rebuilding the plugin cache did not resolve it.

pingana · 6 days ago

I can reproduce the same issue on Windows.

Environment:

  • Windows 11
  • Chrome plugin: openai-bundled/chrome 26.707.71524
  • Microsoft Edge with the official ChatGPT extension

Error:
Cannot redefine property: process

The error occurs during setupBrowserRuntime({ globals: globalThis }) before browser discovery.

I have already tried:

  • Restarting Codex
  • Repairing and reinstalling Codex
  • Reinstalling the browser extension
  • Rebuilding the Chrome plugin cache

None of these steps resolved the issue.

Codex task ID:
019f5e83-b043-7fb2-8419-6a86de0c67db

PochiLv · 6 days ago

I found and validated a local workaround for this bootstrap failure.

Root cause

The generated browser-client.mjs installs its shim by assigning directly to the runtime globals:

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

Codex Desktop exposes process as a protected, non-configurable property, so the first assignment aborts module initialization with:

Cannot redefine property: process

Merely wrapping the assignments in try/catch is not sufficient. Bootstrap then reads fields such as process.versions.node, which are unavailable on the protected runtime object.

Validated workaround

Keeping the shim module-local avoids mutating the protected global while preserving the values expected by the bundled code:

const process = processShim;
const global = {
  eval: globalThis.eval,
  process: processShim,
};

I verified that the current generated bundle only accesses global.eval and global.process.

Validation

After applying the workaround and resetting the JavaScript runtime:

  • setupBrowserRuntime({ globals: globalThis }) completed successfully.
  • agent.browsers.get("extension") connected to Chrome.
  • Browser documentation loaded successfully.
  • browser.user.openTabs() returned all 29 open Chrome tabs.
  • No Chrome data, extension configuration, or Native Messaging configuration was modified.

Environment:

  • macOS
  • Chrome 150.0.7871.115
  • openai-bundled/chrome 26.707.71524

This is only a generated-bundle hotfix and will be overwritten by plugin updates. The corresponding generator/source does not appear to be present in the public openai/codex repository.

Per the repository’s invitation-only contribution policy, please point me to the appropriate source or invite me to submit a PR. I would be happy to implement the source-level fix and add a regression test covering a non-configurable global process property.

lidiam · 6 days ago

Reproduces on macOS 25.5.0 (Apple Silicon), ChatGPT desktop 26.707.72221, Oracle Corporation workspace.

Both Chrome and built-in Browser fail before opening a page with:
Cannot redefine property: process

Tried: fully restarting ChatGPT and Chrome, starting a new Codex task, and reinstalling the Chrome plugin. The error persists.

Feedback ID: 019f61f5-1e61-7f70-adc3-ceab7d45814f

lidiam · 6 days ago

The documented module-local shim workaround partially succeeds on my macOS setup.

It resolves the original bootstrap failure: Chrome control initializes and connects successfully. However, every page-level operation then fails with:

SyntaxError: missing ) after argument list

This affects navigation, DOM inspection, and screenshots, so the browser remains unusable.

Environment:

  • macOS 25.5.0, Apple Silicon
  • ChatGPT desktop 26.707.72221
  • bundled Chrome/Browser client: 26.707.51957

No Chrome data, extension settings, or native messaging configuration was changed. This suggests the workaround validated against bundled client 26.707.71524 may not be fully compatible with the older 26.707.51957 client installed by my app.