Windows Codex Desktop node_repl Playwright cache mismatch around Chromium revision 1200
Summary
On Windows Codex Desktop, node_repl uses the embedded cua_node runtime with Playwright 1.57.0. That runtime requires Chromium / Chromium headless-shell revision 1200, but a normal user-facing repair such as npx playwright install chromium can install newer browser cache revisions (1223 / 1228) that do not satisfy the embedded runtime.
After manually placing the required official Playwright headless-shell revision 1200 into the expected %LOCALAPPDATA%\ms-playwright cache path, await import("playwright") and pw.chromium.launch({ headless: true }) work again from the embedded runtime.
There is also a confusing diagnostic mismatch: pw.chromium.executablePath() reports %LOCALAPPDATA%\ms-playwright\chromium-1200\chrome-win64\chrome.exe, but that file is missing on this machine, while chromium_headless_shell-1200 exists and launch succeeds.
Environment
- Platform: Windows
- Codex Desktop dependency bundle observed locally:
26.630.12135 - Embedded runtime path class:
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\<hash>\bin\node.exe - Embedded Node:
v24.14.0 - Embedded
playwright:1.57.0 - Embedded
playwright-core:1.57.0 - Embedded
playwright-core\browsers.jsonrequires: chromiumrevision1200, browser version143.0.7499.4chromium-headless-shellrevision1200, browser version143.0.7499.4
Observed local browser cache state after manual repair
Under %LOCALAPPDATA%\ms-playwright:
chromium_headless_shell-1200
chromium_headless_shell-1223
chromium_headless_shell-1228
chromium-1223
chromium-1228
Also verified:
exists: %LOCALAPPDATA%\ms-playwright\chromium_headless_shell-1200\chrome-headless-shell-win64\chrome-headless-shell.exe
missing: %LOCALAPPDATA%\ms-playwright\chromium-1200\chrome-win64\chrome.exe
Smoke check after manual repair
Running with the embedded cua_node Node executable from its bin directory:
const pw = await import("playwright");
const browser = await pw.chromium.launch({ headless: true });
const page = await browser.newPage();
await page.goto("data:text/html,<title>ok</title><body>ok</body>");
console.log(await page.title());
await browser.close();
Observed result:
{
"ok": true,
"title": "ok",
"executablePath": "%LOCALAPPDATA%\\ms-playwright\\chromium-1200\\chrome-win64\\chrome.exe"
}
The reported executablePath points at a missing chromium-1200 path, even though the launch succeeds with only chromium_headless_shell-1200 present.
Problem
The currently discoverable repair path is misleading for users and agents:
- Codex's embedded runtime has its own Playwright version and browser revision requirement.
npx playwright install chromiummay install browser revisions for a different Playwright version, leaving the embedded Codex runtime unresolved.- The diagnostic path from
pw.chromium.executablePath()can point to missingchromium-1200\chrome.exe, while the actually required cache artifact for headless operation ischromium_headless_shell-1200. - The resulting failure looks like a local Playwright or system issue, but the fix needs to target Codex's embedded
cua_noderuntime requirements.
Expected behavior
Codex Desktop should either:
- ensure the exact browser revision required by its embedded Playwright runtime is installed automatically;
- expose a Codex-specific repair command that installs the correct embedded runtime browser cache;
- or report an actionable diagnostic that names the embedded Playwright version, required browser revision, and exact expected
%LOCALAPPDATA%\ms-playwrightpath.
Actual behavior
A standard Playwright install command can install newer revisions (1223 / 1228) while Codex's embedded Playwright 1.57.0 still requires revision 1200. Manual placement of the chromium_headless_shell-1200 cache fixes the launch, but this is not obvious from the normal diagnostics.
Related issues checked before filing
This appears adjacent but not identical to:
- #28752: mentions Playwright
1.57.0/chromium_headless_shell-1200, but in a macOS IAB/nativePipe/sandbox failure report. - #31560 and #21292: macOS Node REPL / Chromium sandbox launch failures.
- #29193 / #29238 / #29242: Windows
node_repl/jsmetadata failures aroundsandboxPolicy. - #20206 / #20661: Windows browser/app-server path failures.
This report is specifically about Windows Codex Desktop embedded Playwright browser-cache revision mismatch and misleading repair diagnostics.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗