codex - 💡(How to fix) Fix Chrome plugin domSnapshot on authenticated Blackboard page crashed Google Chrome profile

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…

Using the new Codex Chrome plugin to claim an already-open authenticated Chrome tab and call tab.playwright.domSnapshot() caused the user's real Google Chrome profile to exit/crash. This was not the Codex in-app browser; it was the user's normal Chrome profile controlled through the Codex Chrome extension.

The page was a private university Blackboard page, so I cannot share the URL or screenshot publicly. Structurally, it was a Blackboard Ultra course shell embedding the Original UI Needs Grading page, filtered to one assignment. The visible table had 13 grading rows.

Error Message

  • fail with a recoverable error for a large/private/iframe-heavy page, or

Root Cause

Using the new Codex Chrome plugin to claim an already-open authenticated Chrome tab and call tab.playwright.domSnapshot() caused the user's real Google Chrome profile to exit/crash. This was not the Codex in-app browser; it was the user's normal Chrome profile controlled through the Codex Chrome extension.

The page was a private university Blackboard page, so I cannot share the URL or screenshot publicly. Structurally, it was a Blackboard Ultra course shell embedding the Original UI Needs Grading page, filtered to one assignment. The visible table had 13 grading rows.

Code Example

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

---

{
  "manifestPath": "/Users/<redacted>/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.openai.codexextension.json",
  "expectedHostName": "com.openai.codexextension",
  "actualHostName": "com.openai.codexextension",
  "expectedExtensionId": "hehggadaopoacecdllhhajmbjkdcmajg",
  "hasExpectedOrigin": true,
  "correct": true,
  "problem": null
}

---

const pageTitleNeeds = await needsTab.title();
const pageUrlNeeds = await needsTab.url();
const snapNeeds = await needsTab.playwright.domSnapshot();

---

~/Library/Application Support/Google/Chrome/Default/Preferences:
  "exit_type" => "Crashed"
  "session_data_status" => 1

---

~/Library/Application Support/Google/Chrome/Default/Sessions:
  Session_* updated May 8 14:16 local time
RAW_BUFFERClick to expand / collapse

Summary

Using the new Codex Chrome plugin to claim an already-open authenticated Chrome tab and call tab.playwright.domSnapshot() caused the user's real Google Chrome profile to exit/crash. This was not the Codex in-app browser; it was the user's normal Chrome profile controlled through the Codex Chrome extension.

The page was a private university Blackboard page, so I cannot share the URL or screenshot publicly. Structurally, it was a Blackboard Ultra course shell embedding the Original UI Needs Grading page, filtered to one assignment. The visible table had 13 grading rows.

Environment

  • Product: Codex Desktop app on macOS
  • Codex app version: 26.506.31004 (CFBundleVersion 2604)
  • Codex CLI version available locally: codex-cli 0.128.0
  • macOS: 26.3 (25D125), arm64
  • Google Chrome: 147.0.7727.139
  • Codex Chrome extension ID: hehggadaopoacecdllhhajmbjkdcmajg
  • Codex Chrome extension version: 1.1.4_0
  • Chrome plugin bundle path in Codex: openai-bundled/chrome/0.1.7
  • Native host: com.openai.codexextension

Local setup checks before/after

The extension install check reported healthy:

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

The native host manifest check also reported healthy:

{
  "manifestPath": "/Users/<redacted>/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.openai.codexextension.json",
  "expectedHostName": "com.openai.codexextension",
  "actualHostName": "com.openai.codexextension",
  "expectedExtensionId": "hehggadaopoacecdllhhajmbjkdcmajg",
  "hasExpectedOrigin": true,
  "correct": true,
  "problem": null
}

Steps that triggered the crash

In a Codex Desktop thread, using the Chrome plugin backend:

  1. Bootstrap the Chrome browser runtime with agent.browsers.get("extension").
  2. Call browser.user.openTabs().
  3. Pick the existing authenticated elearning.utdallas.edu tab for a Blackboard course.
  4. Claim it with browser.user.claimTab(targetTabInfo).
  5. Confirm the claimed tab title/url returned successfully.
  6. Call:
const pageTitleNeeds = await needsTab.title();
const pageUrlNeeds = await needsTab.url();
const snapNeeds = await needsTab.playwright.domSnapshot();

While domSnapshot() was pending, the user's Google Chrome window disappeared / Chrome exited. The user interrupted the Codex turn after seeing Chrome crash.

Expected behavior

domSnapshot() should either:

  • return a snapshot,
  • time out cleanly,
  • fail with a recoverable error for a large/private/iframe-heavy page, or
  • at worst crash/disconnect the controlled tab renderer while preserving the rest of the user's Chrome session.

It should not terminate the user's normal Chrome profile.

Actual behavior

The user's real Google Chrome process exited. Afterward, local Chrome state showed the Default profile had crashed:

~/Library/Application Support/Google/Chrome/Default/Preferences:
  "exit_type" => "Crashed"
  "session_data_status" => 1

The latest Chrome session files were updated around the incident time:

~/Library/Application Support/Google/Chrome/Default/Sessions:
  Session_* updated May 8 14:16 local time

No fresh macOS DiagnosticReports entry or Chrome Crashpad dump was found for this incident, so the local evidence is the Chrome profile state/session timestamp rather than a symbolicated crash report.

Notes / hypothesis

This appears related to domSnapshot() against a complex authenticated enterprise/LMS page with nested Blackboard frames and a grading table. A full-page DOM snapshot may be too heavy or may hit an extension/CDP edge case. The key safety concern is that the operation was read-only from the user's point of view, but it destabilized the user's primary Chrome profile.

A safer behavior would be bounded snapshot size/time, iframe filtering, graceful fallback to visible DOM/screenshot, or isolating high-risk snapshot operations so they cannot take down the user's main Chrome session.

Redactions

I intentionally omitted the full Blackboard URL, course IDs beyond the domain class of page, screenshots, user paths, student/team names, and any page content that could contain student data.

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

domSnapshot() should either:

  • return a snapshot,
  • time out cleanly,
  • fail with a recoverable error for a large/private/iframe-heavy page, or
  • at worst crash/disconnect the controlled tab renderer while preserving the rest of the user's Chrome session.

It should not terminate the user's normal Chrome profile.

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 domSnapshot on authenticated Blackboard page crashed Google Chrome profile