codex - 💡(How to fix) Fix Chrome plugin opens pages but page control and screenshots time out after navigation

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…

Code Example

var baiduTestTab = await browser.tabs.new();
await baiduTestTab.goto("https://www.baidu.com/");
await baiduTestTab.title();
// "百度一下,你就知道"
await baiduTestTab.url();
// "https://www.baidu.com/"

---

var searchLocator = baiduTestTab.playwright.locator('textarea[name="wd"], input[name="wd"]');
await searchLocator.fill("Codex Chrome plugin test");
await searchLocator.press("Enter");
await baiduTestTab.playwright.waitForURL("**/s?**", {
  timeoutMs: 20000,
  waitUntil: "domcontentloaded",
});

---

var countProbe = await Promise.race([
  tab.playwright.locator('textarea[name="wd"], input[name="wd"]').count()
    .then(value => ({ ok: true, value })),
  new Promise(resolve => setTimeout(
    () => resolve({ ok: false, timeout: true, label: "search count" }),
    5000,
  )),
]);
// { "ok": false, "timeout": true, "label": "search count" }

---

{
  "title": "Google",
  "url": "www.google.com/?..."
}

---

{
  "extensionId": "hehggadaopoacecdllhhajmbjkdcmajg",
  "profilePath": "/Users/mac/Library/Application Support/Google/Chrome/Default",
  "installed": true,
  "registered": true,
  "enabled": true,
  "disabled": false,
  "versions": ["1.1.4_0"]
}
RAW_BUFFERClick to expand / collapse

What version of the Codex App are you using?

Codex desktop app 26.513.20950 (CFBundleVersion 2816).

Bundled Chrome plugin observed locally:

  • plugin path: /Users/mac/.codex/plugins/cache/openai-bundled/chrome/0.1.7
  • plugin version: [email protected]
  • Codex Chrome Extension ID: hehggadaopoacecdllhhajmbjkdcmajg
  • Codex Chrome Extension version: 1.1.4_0

What platform is your computer?

macOS 26.4.1 (25E253) on Apple Silicon (arm64).

Chrome:

  • Google Chrome 148.0.7778.97
  • selected Chrome profile reported by the browser backend: Jing

What issue are you seeing?

The bundled Chrome plugin can now connect to the extension backend and open pages, but page-level control still hangs for common interactions.

This looks like a follow-up / next-stage failure after issues such as #21681:

  • setupBrowserRuntime({ globals }) succeeds.
  • agent.browsers.get("extension") succeeds.
  • browser.user.openTabs() succeeds.
  • browser.tabs.new() succeeds.
  • tab.goto("https://www.baidu.com/") succeeds and tab.title() returns 百度一下,你就知道.
  • tab.goto("https://www.google.com/") succeeds and tab.title() returns Google.
  • But Playwright locator actions and screenshot calls against those pages time out.

Expected behavior

After the Chrome plugin opens Google or Baidu, Codex should be able to:

  • locate the search input,
  • type a simple query,
  • press Enter,
  • wait for the search results URL,
  • optionally take a screenshot for visual verification.

Actual behavior

The browser connection and initial navigation work, but page control hangs:

Baidu

Opening Baidu worked:

var baiduTestTab = await browser.tabs.new();
await baiduTestTab.goto("https://www.baidu.com/");
await baiduTestTab.title();
// "百度一下,你就知道"
await baiduTestTab.url();
// "https://www.baidu.com/"

Then a normal search-box interaction timed out and reset the Node REPL kernel:

var searchLocator = baiduTestTab.playwright.locator('textarea[name="wd"], input[name="wd"]');
await searchLocator.fill("Codex Chrome plugin test");
await searchLocator.press("Enter");
await baiduTestTab.playwright.waitForURL("**/s?**", {
  timeoutMs: 20000,
  waitUntil: "domcontentloaded",
});

After reconnecting, even a bounded probe around the locator count did not complete within 5 seconds:

var countProbe = await Promise.race([
  tab.playwright.locator('textarea[name="wd"], input[name="wd"]').count()
    .then(value => ({ ok: true, value })),
  new Promise(resolve => setTimeout(
    () => resolve({ ok: false, timeout: true, label: "search count" }),
    5000,
  )),
]);
// { "ok": false, "timeout": true, "label": "search count" }

tab.title() still worked, but tab.screenshot({ fullPage: false }) timed out under the same style of bounded probe.

Google

Opening Google worked and left a controlled tab at Google:

{
  "title": "Google",
  "url": "www.google.com/?..."
}

But trying to type into textarea[name="q"], input[name="q"] and submit a query timed out after 70 seconds and reset the Node REPL kernel. A later direct goto("https://www.google.com/search?q=OpenAI+Codex+browser+automation+test") also timed out after 45 seconds; after reconnecting, the controlled tab was still on the Google home page.

Local checks that pass

chrome-is-running.js --json reports Chrome running.

check-extension-installed.js --json reports:

{
  "extensionId": "hehggadaopoacecdllhhajmbjkdcmajg",
  "profilePath": "/Users/mac/Library/Application Support/Google/Chrome/Default",
  "installed": true,
  "registered": true,
  "enabled": true,
  "disabled": false,
  "versions": ["1.1.4_0"]
}

check-native-host-manifest.js --json reports the native host manifest exists and is correct for com.openai.codexextension.

Why this seems distinct from the earlier discovery hang

This is not the original "Chrome backend cannot be discovered at all" failure. In this repro:

  • backend discovery succeeds,
  • openTabs() succeeds,
  • controlled tabs can be created,
  • top-level navigation and title() / url() can work.

The failure appears lower down in page control / Playwright / screenshot plumbing after navigation.

Suggested fix direction

  • Add bounded timeouts and clearer diagnostics around page-level commands such as locator resolution, fill/press, screenshot, and navigation-to-results waits.
  • Distinguish extension backend discovery success from per-tab page-control readiness.
  • Include the target URL, command type, and backend type in timeout diagnostics so users can tell whether the extension bridge, page runtime, Playwright wrapper, or site load is stuck.

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…

FAQ

Expected behavior

After the Chrome plugin opens Google or Baidu, Codex should be able to:

  • locate the search input,
  • type a simple query,
  • press Enter,
  • wait for the search results URL,
  • optionally take a screenshot for visual verification.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

codex - 💡(How to fix) Fix Chrome plugin opens pages but page control and screenshots time out after navigation