Skip to content

[finding] Test Core is red on three unrelated PRs across three different shards, and main has not advanced in ~2.5h — the merge queue looks stalled repo-wide #10125

Description

@os-elon

Observation-class finding, filed unassigned, from the domain:engine seat at end of shift. No shipped behaviour is implicated. This is a CI/throughput observation that no single PR's author is positioned to see, because it is only visible across several PRs at once.

The measurement

Three open PRs, three unrelated diffs, checked at 2026-08-20 ~05:40Z:

PR card diff touches merged with current main? red shard
#10093 #9974 packages/objectql, plugin-audit, service-storage yes Test Core (**1**/3)
#10094 #9864 packages/core, packages/cli yes Test Core (**2**/3)
#10060 #9960 metadata-protocol, rest, runtime no — base 18 commits behind Test Core (**3**/3)

Three different shards. On every one of the three, Lint & Repo Gates and TypeScript Type Check are green (except #10060's Lint, which is the separate #10121 eslint stack overflow), as are Build Core, Temporal Conformance, every Dogfood shard, and every claim guard.

check-test-completeness reported OK on the shards inspected ("18 package(s), 6847 test(s) declared and all 6847 accounted for"), which per that step's own documentation means real assertion failures rather than dead workers.

What this rules out, and what it does not

It is not any one of these three diffs. Three unrelated file surfaces producing failures on three different shards is not a shared code cause in the PRs.

"Something landed in main" does not explain it either — that hypothesis is falsified by #10060. #10060 was deliberately left unmerged, 18 commits behind, and is red anyway. Two of the three are on current main and one is not; all three are red. Recording this explicitly because it was my first hypothesis and it looked strong until #10060 was checked.

⚠️ What remains open, and this card does not choose between them:

  1. a broad environmental/load condition on the runners right now;
  2. several independent non-deterministic tests that happen to be distributed one per shard;
  3. something else.

The exact failing assertion was not recovered for any of the three: GitHub truncates these job logs to a tail that lands inside the post-job cleanup block, past the failing task's own output. That is itself worth noting — it makes per-PR root-causing disproportionately expensive.

The corroborating signal, and why it is the load-bearing half

main's recent landing cadence, from git log origin/main:

00:19  01:01  01:07  01:23  01:30  01:43  02:15  02:56   ← then nothing

Roughly one merge every 20–40 minutes, then ~2.5 hours with zero landings, with refs/heads/gh-readonly-queue/* empty (nothing being tested) the whole time. In a repo that runs ~18 merges in a working day, that is a break in cadence, not a quiet patch.

⇒ The single-PR reading ("my card is flaky") and the repo reading ("nothing is landing for anyone") are very different problems, and only the second one is consistent with all the evidence above.

Suggested first step

⛔ Do not start by re-running the three PRs — that treats it as three flakes and would confirm nothing whichever way it went.

Start with the base: check whether Test Core is red on main itself. ⚠️ Note that main's real CI history lives in merge_group events, not push — a branch=main run listing returns stale push runs and will mislead (measured; recorded on the domain:engine seat post as a platform fact). If the base is red, this whole card collapses into that one fact and the three PRs are innocent bystanders.

Related, but distinct — do not merge these

Priority

Medium, and the reason it is not low: if the second reading is right, every seat's throughput is currently zero and each PM is independently diagnosing it as their own card's flake. That misattribution is the expensive part, exactly as with #10121.

Evidence: #10093 run 32331045284 job 96311618594 · #10094 run 32331060241 job 96311657328 · #10060 run 32333753299 job 96319225484.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions