[GH-ISSUE #279] ci: real-browser check flakes with Chrome CDP startup timeout #158

Closed
opened 2026-10-15 18:21:47 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @morluto on GitHub (Jul 16, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/279

Summary

The real-browser CI check intermittently fails before any REA code runs, while waiting for Chrome to expose its CDP devtools port.

The failure is a bare startup timeout, not an assertion about REA behavior:

file:///home/runner/work/rea/rea/scripts/verify-real-browser.mjs:328
  throw new Error(`Timed out waiting for Chrome CDP startup: ${stderr()}`);
        ^

Error: Timed out waiting for Chrome CDP startup:
    at devtoolsPort (file:///home/runner/work/rea/rea/scripts/verify-real-browser.mjs:328:9)
    at async file:///home/runner/work/rea/rea/scripts/verify-real-browser.mjs:62:16

Reproduction

Observed on PR #253 (release-please--branches--main--components--rea-agents) on run https://github.com/morluto/rea/actions/runs/29505599423/job/87645409074. The same commit passed real-browser on a prior run, and a rerun of the failed job succeeded, so the failure is not deterministic.

Environment from the failing job:

  • REA_BROWSER_EXECUTABLE=/usr/bin/google-chrome
  • REA_BROWSER_NO_SANDBOX=true
  • runner: ubuntu-latest

Expected behavior

npm run verify:browser should either start Chrome reliably or surface a more actionable diagnostic (e.g. Chrome exit code, stderr tail, devtools-port probe result) before timing out.

Actual behavior

scripts/verify-real-browser.mjs:328 throws Timed out waiting for Chrome CDP startup: with an empty stderr string, giving no signal about why Chrome did not come up.

Suggested investigation

  • Capture and print Chrome's stderr/exit status in the timeout path of devtoolsPort so failures are diagnosable.
  • Consider a bounded retry of the Chrome launch before declaring the check failed.
  • Check whether the GitHub-hosted Chrome image occasionally needs a longer startup deadline or a warm-up step.

Test plan

  • Rerun real-browser on main several times to estimate the flake rate.
  • Add stderr/exit-code capture to the CDP startup wait and confirm a future failure includes actionable output.
Originally created by @morluto on GitHub (Jul 16, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/279 ## Summary The `real-browser` CI check intermittently fails before any REA code runs, while waiting for Chrome to expose its CDP devtools port. The failure is a bare startup timeout, not an assertion about REA behavior: ``` file:///home/runner/work/rea/rea/scripts/verify-real-browser.mjs:328 throw new Error(`Timed out waiting for Chrome CDP startup: ${stderr()}`); ^ Error: Timed out waiting for Chrome CDP startup: at devtoolsPort (file:///home/runner/work/rea/rea/scripts/verify-real-browser.mjs:328:9) at async file:///home/runner/work/rea/rea/scripts/verify-real-browser.mjs:62:16 ``` ## Reproduction Observed on PR #253 (`release-please--branches--main--components--rea-agents`) on run https://github.com/morluto/rea/actions/runs/29505599423/job/87645409074. The same commit passed `real-browser` on a prior run, and a rerun of the failed job succeeded, so the failure is not deterministic. Environment from the failing job: - `REA_BROWSER_EXECUTABLE=/usr/bin/google-chrome` - `REA_BROWSER_NO_SANDBOX=true` - runner: `ubuntu-latest` ## Expected behavior `npm run verify:browser` should either start Chrome reliably or surface a more actionable diagnostic (e.g. Chrome exit code, stderr tail, devtools-port probe result) before timing out. ## Actual behavior `scripts/verify-real-browser.mjs:328` throws `Timed out waiting for Chrome CDP startup:` with an empty stderr string, giving no signal about why Chrome did not come up. ## Suggested investigation - Capture and print Chrome's stderr/exit status in the timeout path of `devtoolsPort` so failures are diagnosable. - Consider a bounded retry of the Chrome launch before declaring the check failed. - Check whether the GitHub-hosted Chrome image occasionally needs a longer startup deadline or a warm-up step. #### Test plan - [ ] Rerun `real-browser` on `main` several times to estimate the flake rate. - [ ] Add stderr/exit-code capture to the CDP startup wait and confirm a future failure includes actionable output.
bsakaguchi 2026-10-15 18:21:47 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#158
No description provided.