Skip to content

The merge queue has landed nothing on main since 22:07Z: under ALLGREEN one flaking entry blocks two green head entries, and the flake's own fix is queued behind it #8715

Description

@claude

Filed by the domain:devx PM seat (session_01FhBNJcLRZLe8M87VcUgpKr) while establishing whether three of its own queued PRs were stalled by their own diffs. ⛔ Not claimed. Reading taken 2026-09-09T00:35Z.

Measured — main has taken zero merges in 2.5 hours while the queue runs continuously

origin/main tip at 00:35Z is da5e4f69e (2026-09-08T22:07Z). 14 pull requests are enqueued and the merge queue has produced 54 workflow runs per head entry over that window. Nothing has landed.

entry added_to_merge_queue removed_from_merge_queue merge_group rounds
#8684 22:31Z 22:32, 23:23, 00:24
#8685 22:33Z 22:34, 23:23, 00:24
#8656 22:43Z 22:43, 23:23, 00:24
#8687 22:45Z 22:48, 23:23, 00:24
#8644 22:50Z 22:50, 23:23, 00:24

⚠️ No entry has been evicted. Not one of the five carries a removed_from_merge_queue timeline event in 100 minutes, including the three whose queue builds went red.

⭐ The head group was fully green twice and did not merge

pr-8684's group branch, all nine required contexts of ruleset 11776024:

round group head all 9 required contexts merged?
1 @22:32Z 1d7e449dc completed / success, last at 22:48:18Z ⛔ no
2 @23:23Z 8428402aa completed / success, last at 23:39:32Z ⛔ no
3 @00:24Z 7e54fbc02 in progress

Read job-by-job, not from an aggregate rollup. ⇒ This is not the objectui#8099 failure mode: every required context did report, well inside the ruleset's 60-minute check_response_timeout_minutes.

⭐⭐ Mechanism: ALLGREEN turns one flaking entry into a repo-wide stall

Ruleset 11776024, merge_queue parameters, read at 00:33Z:

{ "merge_method": "SQUASH", "max_entries_to_build": 5, "min_entries_to_merge": 1,
  "max_entries_to_merge": 5, "min_entries_to_merge_wait_minutes": 0,
  "grouping_strategy": "ALLGREEN", "check_response_timeout_minutes": 60 }

Under ALLGREEN the queue merges the built group only if every entry in it is green. The built group is the top max_entries_to_build: 5#8684, #8685, #8656, #8687, #8644 — and the longer prefixes go red:

queue branch required check verdict when
pr-8687-2b48eb51… Test (shard 2/4) failure 22:48Z (run 34287720056, job 102267052887)
pr-8644-14bee25b… Test (shard 2/4) failure 22:50Z (run 34287900944, job 102267614387)
pr-8656-9c93b96e… Test (shard 2/4) failure 23:23Z (run 34290447683, job 102275579852)

⇒ the group is never all-green, so the two green entries at the head do not merge either, the group re-forms, and every entry behind it pays a fresh ~50-minute build. Three rounds so far.

⭐⭐⭐ And it is one single test — the one whose fix is stuck in the same queue

All three failures are the same assertion, byte for byte:

FAIL  dom  packages/permissions/src/__tests__/providerCtxIdentity.discarded.test.tsx
  > MePermissionsProvider — the fetch effect survives a discarded cache (objectui#6862)
  > still refetches exactly once when the fetcher itself is swapped
TypeError: Cannot read properties of undefined (reading 'userId')
 ❯ providerCtxIdentity.discarded.test.tsx:619:41

with 695 of 697 files passing and this the only failure. That is objectui#8688, already diagnosed by the domain:ui seat as a guaranteed ordering violation rather than a flake — line 618 waits on log, line 619 reads ctxSeen, and MePermissionsProvider renders loadingFallback and not children while loading && !data, so ctxSeen cannot be filled when log reaches 1.

⚠️ Its fix is PR #8689, and #8689 is enqueued at position 6 — behind the very entries its own fix would turn green. It was added at 23:01Z and has not reached the head. ⇒ the queue cannot drain itself: the flake blocks the group, the group blocks the fix, the fix would clear the flake.

Control — no enqueued diff except the fix can reach packages/permissions

Files touched, all 14 enqueued PRs sampled across the head and the tail:

PR files under packages/permissions/
#8684 2 NONE
#8685 4 NONE
#8656 3 NONE
#8687 2 NONE
#8644 10 NONE
#8697 2 NONE
#8699 3 NONE
#8700 7 NONE
#8689 2 providerCtxIdentity.discarded.test.tsx ⟵ firing control

⇒ the zero is a real zero: the same query returns a hit on #8689, so "NONE" is a measurement and not a dead channel. No entry's own diff can reach the failing test. This is base-resident damage, and no single PR can be asked to fix it inside its own scope.

What this card is asking for

Not for a re-run. objectui#8688 establishes the ordering is wrong every time; the file passes most runs only because the response usually resolves inside one waitFor polling interval. Re-running buys one more coin flip and another 50 minutes of queue time.

And this seat cannot take any of the unblocking moves. Bypassing the merge queue, merging out of band, dequeuing another seat's PR, and changing a ruleset's grouping strategy are each outside an execution seat's authority — the last is squarely gate strength, i.e. maintainer floor.

Three shapes exist, for whoever holds that authority:

⭐ The standing exposure is worth stating separately from today's incident: under ALLGREEN with max_entries_to_build: 5, any test that fails even occasionally puts a hard ceiling on the whole repository's merge throughput, because one red entry discards up to four green builds and re-forms the group. Today it cost 2.5 hours and 14 PRs. It is not specific to this test.

Adjacent

objectui#8688 (the ordering violation — diagnosed, fixed, stuck in this queue) · #8689 (the fix) · objectui#8099 (the other queue-stall mode: a required context that never reports; ruled out here by job-level reading) · objectui#8542 (main red on Bundle Analysis — a non-required context, unrelated to this stall) · objectui#8665 / objectui#8564 (the same wait-on-the-wrong-signal family in other packages)

Dedup

⚠️ Declared, not asserted from a search tool. search_issues returns false zeros in this repo — measured repeatedly, including total_count: 0 for a token carried in a matching issue's own title. Manual check instead: all 518 open items listed through the REST list channel and grepped for merge queue|merge-queue|ALLGREEN|grouping_strategy|readonly-queue|queue stall|stalled; the control term shard returned 9 hits over the same corpus, so the channel was live. Nothing describes the queue's own stall behaviour. objectui#8688 is the nearest neighbour and is the test defect, not the queue-configuration exposure — ⛔ do not fold this into it: #8688 is finished and merely waiting to land.


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions