Skip to content

main has failed E2E on 8 consecutive runs — twins ?ortho overflow click, plus #715 #716

Description

@TortoiseWolfe

main has failed the E2E workflow on every run since at least 2026-08-10 — eight
consecutive runs. There are exactly two distinct causes, and neither is new work:

Shard Spec Cause
chromium-gen 1/6 color-contrast.spec.ts:211 × 2 (/game/cod-skeleton light + dark) 30 s timeout, tracked in #715
chromium-gen 6/6 twins.spec.ts:98"Top-down compare mode (#233): dock button + ?ortho render without errors" this issue

The twins failure

TimeoutError: locator.click: Timeout 15000ms exceeded.
  - waiting for getByRole('button', { name: 'More controls' })
  - locator resolved to <button aria-haspopup="menu" aria-expanded="false" aria-label="More controls">⋯</button>
  - element is visible, enabled and stable
  - scrolling into view if needed / done scrolling
  - performing click action

The ⋯ overflow button is found, visible, enabled, stable and clicked — and
aria-expanded never flips to true. All three attempts fail identically, so it is
deterministic rather than flaky.

Note the route: /twins/[slug]?diorama. The colour-contrast spec excludes that same route
with the reason "twin payloads are privacy-gated and gitignored; absent in a fresh
checkout"
. A page whose data is missing in CI may well render an overflow menu that has
nothing to open, which would explain a click that lands and changes nothing. That is a
hypothesis and has not been verified
— the video and trace artifacts on the run would
settle it in a minute.

Why this matters more than either individual failure

Two required checks gate merges (Test (20.x) and accessibility), so a red E2E blocks
nothing. Eight consecutive red runs trains everyone — human and agent — to read "E2E
failed" as the normal state. The next genuine regression lands inside that noise and is
invisible.

It nearly happened here: PR #701 merged with these two failures present, and separating
"mine" from "already broken" took a per-shard log comparison against the previous run. That
comparison should not be necessary to answer "did I break something".

Suggested order

  1. Fix or explicitly exclude both (cod-skeleton HUD failed AAA at 4.51:1 — the contrast coverage the #721 exclusion owed #715 and this one), so main is green.
  2. Then treat any red E2E on main as a real signal again.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions