Skip to content

[flake] scripted-browser-lab 'live provisioned clone' test flakes on the node-24 CI leg #276

Description

@danielgwilson

Symptom

tests/scripted-browser-lab.test.ts > runScriptedBrowserLab > live provisioned clone: provisions one synthetic subject, drives getHost, and persists only public-safe URL labels intermittently fails on the test (24) CI leg with expected false to be true (result.ok, scripted-browser-lab.test.ts:516), while test (22.14.0) passes. Observed on PR #275's first run (a docs/CLI-only diff that does not touch scripted-browser-lab at all); passed on re-run. The test file takes ~15.5s on the failing leg.

Assessment

Flaky, not a real regression: the triggering PR touched only README + program.ts help text + program.test.ts. Ran pnpm vitest run tests/scripted-browser-lab.test.ts locally on node 24.12.0 twice: 19/19 both times. Re-running the CI job made it green.

Why it matters

This is a required check on a repo with autonomous-merge authority. A timing-sensitive flake on a required check erodes the merge-green signal and forces manual re-runs. Worth making deterministic (likely a fake-substrate timing/await race in the provisioned-clone path, or a shared-clock assumption that is tighter on the node-24 runner).

Next step

Reproduce under load (e.g. for i in $(seq 20); do pnpm vitest run tests/scripted-browser-lab.test.ts; done, or with CPU pressure) to surface the race, then pin the timing seam (injected clock / awaited readiness) rather than widening a timeout.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:actorsActor/runtime adapters such as scripted, terminal, Codex, and computer-use.bugSomething isn't workingproof-requiredCannot close without command, artifact, review, or run-bundle proof.risk:lowLow-risk work.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions