codex - 💡(How to fix) Fix Chrome plugin: tab.goto() causes native pipe closed / kernel reset, blocking navigation and web automation

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

  • The error bypasses normal JS try/catch. Observed error: Using CUA keyboard actions to press Ctrl+L, type a URL, and press Enter returned without an error, but the tab stayed on about:blank. If navigation fails, it should fail as a normal catchable JavaScript exception instead of closing the native pipe and resetting the Node REPL kernel.

Root Cause

The Codex Chrome plugin can connect to Chrome and perform basic tab operations, but it cannot complete actual browser automation because navigation causes the native messaging pipe to close.

Code Example

node_repl kernel unhandled rejection: native pipe is closed; kernel reset.
This blocks the Chrome plugin from doing the main tasks I need:

Opening web pages
Searching the web
Reading search results
Filling forms
Opening Gmail or other webmail
Completing multi-step browser workflows
Environment checks pass:

Chrome is running.
Codex Chrome Extension is installed and enabled.
Native host manifest exists and is correct.
Registry native messaging host path matches the manifest.
So this does not look like an authorization issue or a website-specific issue. It looks like a Chrome Extension / native messaging / browser-client navigation stability issue.

### What steps can reproduce the bug?

1. Start Codex with the Chrome plugin enabled.

2. Connect to Chrome through the plugin.

3. Verify that basic tab listing works:
RAW_BUFFERClick to expand / collapse

What version of the Codex App are you using (From “About Codex” dialog)?

26.153.40821

What subscription do you have?

plus

What platform is your computer?

Windows, PowerShell environment Chrome version: 148.0.7778.168 Codex Chrome Extension: 1.1.4_0 Extension ID: hehggadaopoacecdllhhajmbjkdcmajg Chrome profile: 用户1

What issue are you seeing?

The Codex Chrome plugin can connect to Chrome and perform basic tab operations, but it cannot complete actual browser automation because navigation causes the native messaging pipe to close.

Working:

  • Connects to the Codex Chrome Extension successfully.
  • Lists existing Chrome tabs.
  • Reads tab title and URL.
  • Creates a managed about:blank tab.
  • Lists managed tabs.
  • Cleans up managed tabs with browser.tabs.finalize({ keep: [] }).

Broken:

  • Calling tab.goto('https://example.com/') on a managed tab causes the Node REPL kernel to reset.
  • Calling tab.goto('http://127.0.0.1:8765/...') also causes the same failure.
  • The error bypasses normal JS try/catch.

Observed error:

node_repl kernel unhandled rejection: native pipe is closed; kernel reset.
This blocks the Chrome plugin from doing the main tasks I need:

Opening web pages
Searching the web
Reading search results
Filling forms
Opening Gmail or other webmail
Completing multi-step browser workflows
Environment checks pass:

Chrome is running.
Codex Chrome Extension is installed and enabled.
Native host manifest exists and is correct.
Registry native messaging host path matches the manifest.
So this does not look like an authorization issue or a website-specific issue. It looks like a Chrome Extension / native messaging / browser-client navigation stability issue.

### What steps can reproduce the bug?

1. Start Codex with the Chrome plugin enabled.

2. Connect to Chrome through the plugin.

3. Verify that basic tab listing works:

```js
const { setupBrowserRuntime } = await import('file:///C:/Users/Admin/.codex/plugins/cache/openai-bundled/chrome/0.1.7/scripts/browser-client.mjs');
await setupBrowserRuntime({ globals: globalThis });
globalThis.browser = await agent.browsers.get('extension');
await browser.nameSession('Chrome capability test');

const openTabs = await browser.user.openTabs();
console.log(openTabs);
This succeeds.

4.Create a managed tab:
globalThis.tab = await browser.tabs.new();
console.log(await tab.title(), await tab.url());
This succeeds and returns an about:blank tab.

5.Try to navigate the managed tab:
await tab.goto('https://example.com/');
await tab.playwright.waitForLoadState({ state: 'domcontentloaded', timeoutMs: 15000 });
The Node REPL kernel crashes/resets with:
node_repl kernel unhandled rejection: native pipe is closed; kernel reset.
Additional observations:

6.The same issue happened when navigating to a localhost page:
http://127.0.0.1:8765/chrome-test-form.html
Trying to claim chrome://newtab/ failed with:
Chrome internal tab 1709557289 cannot be claimed
Using CUA keyboard actions to press Ctrl+L, type a URL, and press Enter returned without an error, but the tab stayed on about:blank.

### What is the expected behavior?

The Chrome plugin should be able to navigate a managed tab to normal web pages such as `https://example.com/`, then allow Playwright/DOM operations on that page.

Expected workflow:
1. Create or claim a controllable Chrome tab.
2. Navigate to a URL.
3. Wait for the page to load.
4. Read DOM content.
5. Fill forms.
6. Click buttons.
7. Continue multi-step workflows such as search, web forms, or email drafting.

If navigation fails, it should fail as a normal catchable JavaScript exception instead of closing the native pipe and resetting the Node REPL kernel.

### Additional information

_No response_

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING