A stale listing is now read again before it stops a build

Before anything is compiled, a repository has to decide which platform build to compile against. It asks GitHub for the list of recent platform builds and takes the newest one that is finished and published.

Occasionally GitHub answers that question with an old page. Not a corrupted one and not an error: an ordered, plausible, entirely well-formed list of runs, weeks out of date, returned with a success code. Asked again minutes later, the same query from the same credential answers correctly.

Taking that page at face value would be the expensive mistake — it would pick a platform build from days ago and report it as the newest, so every repository in the fleet would quietly compile and test against an old platform. So the reader refuses instead, and that refusal is correct and stays.

What was wrong with refusing immediately

The refusal ended the whole job, and 17 or 18 other jobs behind it. Recovering meant a person noticing the red and pressing Re-run all jobs — which then went green, with nothing changed.

Measured on 2026-09-18, that happened three times in one day, and the third time it was main itself that was left without a verdict — the branch whose result every open change in the repository is measured against.

The refusal's own text said why this was avoidable: a re-read minutes later was correct.

What happens now

Where the staleness can be proven, the page is read again — up to three times, on a short backoff totalling about two minutes — and the job continues the moment a read comes back current. If every re-read is still old, the same refusal follows, unchanged.

"Proven" is doing real work in that sentence. There are two ways a page can look old, and only one of them is a fact:

Only the first is re-read. The second refuses on the first read, exactly as before — and so does a run that has been pinned to one specific platform build by hand, because that is an instruction given during an incident and must not be made to wait.

Each re-read is reported on its own line, saying how many runs the page held and which was the newest, so a reader can always tell "it was read again and it cleared" from "the situation never arose".

Reconnecting…
The connection to the server was interrupted. Trying to restore it…
Trying again…
The connection could not be restored. Reloading the page…
The server was updated. Reloading the page to pick up the latest version.