Skip to content

id(ci): nixos-playwright-e2e VM test fails on first curl — no server readiness wait (nightly 40457980141) #1374

Open

Description

@dezren39

Finding (from #1075 slice 1, queue task 1256)

nixos-playwright-e2e fails on a readiness race in its own VM test script: the first probe is a single non-retried curl against a server that is not up yet.

Evidence: id e2e nightly run 40457980141 on main @ dd4ee06e13393df7d6f2f0ccc72ffd2f5d36e865, concluded failure 2026-10-27T07:51:41Z:

  • ❌ checks.x86_64-linux.nixos-playwright-e2e — builder failed exit code 1. Traceback in vm-test-run-id-playwright-e2e:
    File "<string>", line 17, in <module>
      chromium_client.succeed("curl -sf http://chromium_server:4173/")
    RequestedAssertionFailed: command `curl -sf http://chromium_server:4173/` failed (exit code 7)
    
    Exit code 7 = connection refused. The failure fired ~53s after the VMs started (07:31:31Z → 07:32:24Z), while the server VMs were still booting / the app was still starting (pkarr/DNS publish noise in the same window). There is no wait_for_open_port / retry before the succeed(...) probe in the failing script path.
  • This check never got to run any Playwright test in this nightly — the harness failed before the suite started, so the nightly currently gives no NixOS-Playwright signal at all.
  • Not covered by Nix Playwright E2E suite fails after vendoring dependencies #176 (that is the non-VM test-e2e derivation) or id(ci): nightly NixOS VM checks fail — home page no longer contains 'Files' (serve/e2e assertions, integration timeout) #896 (VM serve/e2e/integration; playwright-e2e was still running when it was summarised). No commit between dd4ee06e and current main (6f4532ab) touches the id nix tests.

Acceptance criteria

  • The playwright-e2e VM test waits for the server properly (e.g. wait_for_open_port(4173) / retried probe with a named timeout) before the first curl assertion.
  • nixos-playwright-e2e reaches and runs its Playwright suite in a full nix flake check run; pass/fail is then about the tests, not harness readiness.
  • Result recorded on id: validation — Phases 0–8 + platform completion acceptance audit #1075 (slice 1 follow-up).

Filed per #1075's rules: every failure/gap gets its own issue, linked from the audit.

Activity

  1. added
    kind/ciCI/CD pipelines, workflows, and build automation
    priority/highImportant and time-sensitive
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. added
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    nowOrg Project gate: active priority — orchestrator adds to the board
    on Oct 27, 2026
  4. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — picked up triage task 2565 (queue repo-health-code-pilot, worker repo-worker-code, lane aea12c82, origin openchamber-scheduled-lane) at 2026-11-02T23:02:51Z. Revalidating #1374 against current main.

  5. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — triage verdict (task 2565, worker repo-worker-code, lane aea12c82) at 2026-11-02T23:04:45Z:

    Verdict: confirmed with corrected diagnosis — routed as follow-up task 6591, issue stays open.

    • Issue premise is stale: the server-side readiness waits it asks for already exist at origin/main AND already existed at the failing commit dd4ee06 — pkgs/id/nix/tests/playwright-e2e-test.nix lines 121-128 (wait_for_unit + wait_for_open_port for all four instances) precede the curl probes (lines 131-134). Adding waits would be a no-op.
    • Residual real gap: wait_for_open_port runs on the SERVER VM (local check); the first probe runs on the CLIENT VM across the virtual network with no retry — that unretried cross-VM hop is what failed with exit code 7 in nightly run 40457980141 (~53s after VM start).
    • Recurrence: unknown — nightlies of 10-29/10-31/11-02 all fail earlier on infra (Magic Nix Cache throttling, missing store paths); the VM test has not re-run since 10-27.
    • Route: enqueued small_fix task 6591 (client-side retry for the four verify curls, server-side block unchanged). The 10-29+ infra failures are out of this issue's scope (cf. Nix Playwright E2E suite fails after vendoring dependencies #176, id(ci): nightly NixOS VM checks fail — home page no longer contains 'Files' (serve/e2e assertions, integration timeout) #896).
  6. added
    work/assignedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 2, 2026
  7. 15 remaining items

  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  10. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 4, 2026
  11. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor
    • Session / ID: task 7236 (repo-fleet-monitor run 2026-11-03 22:12 CST)
    • Found via: monitor reconciliation
    • Task: Claim evaporated — the queue task is queued and unclaimed again (lease expired with no complete/park/block), so the issue labels are reset to the truth: queue/queued + status/needs-triage. Checkpoint stage at evaporation: handed_off.
    • Expectation: a queue lane re-claims task 7236 and resumes from the checkpoint.
  12. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  13. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)kind/ciCI/CD pipelines, workflows, and build automationnowOrg Project gate: active priority — orchestrator adds to the boardpriority/highImportant and time-sensitivequeue/claimedQueue worker lifecycle statesource/creatorFiled by the new-issue-creator jobstatus/in-progressQueue worker lifecycle statetask/triageQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions