e2e job intermittently hangs to the 20-minute limit and blocks the required main check
@mfal is already working on this.
Since Sep 16, 2026.
- Dominant language
- TypeScript
- Stars
- 15
- Forks
- 3
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 184
Description
The e2e job in test.yml intermittently hangs until the 20-minute job limit and is cancelled, failing the required main aggregate check. Normal runtime is 3–4 minutes, so this is a hang, not a job that outgrew its budget.
Evidence
Eleven most recent test.yml runs on main, e2e duration:
| Result | Duration | Run |
|---|---|---|
| cancelled | 20m (limit) | 33608121174 |
| success | 3m | 33607745081 |
| success | 3m | 33605020569 |
| success | 4m | 33603849804 |
| success | 0m | 33602709066 |
| success | 4m | 33599659211 |
| success | 3m | 33599165776 |
| success | 0m | 33599050568 |
| success | 1m | 33598889354 |
| success | 3m | 33521559227 |
| success | 3m | 33519772221 |
Also hit on a pull request whose diff cannot affect e2e runtime — a codemods-only change (#3075, run 33609431867, job annotation The job has exceeded the maximum execution time of 20m0s). That is what rules out "a PR made it slower": the hang reproduces on main and on an unrelated branch alike.
Why it matters beyond one red check
main is a required status context and depends on e2e, so every occurrence blocks a merge until someone re-runs the job. The failure mode is also indistinguishable at a glance from a real e2e failure — the check is simply red — so it costs a log read every time.
What to look for
The 3–4 minute baseline against a 20-minute wall suggests something waits forever rather than running slowly: a dev server or preview that never becomes ready, a browser launch that never returns, or a test awaiting an event that is dropped on a contended runner. Two starting points:
- Add a per-test and per-suite timeout well below the job limit, so the run fails with a stack instead of being cancelled with no log. Right now a cancelled job leaves nothing to read, which is why this has no diagnosis yet.
- Check whether the hang correlates with the runner also executing the visual shards, which have their own contention signature (
Could not capture a stable screenshot, observed on #3076 in the same window).
Provenance
Found while clearing infrastructure failures across a batch of open PRs, alongside two other non-code CI failures in the same window: deploy failing on ConnectTimeoutError to api.mittwald.de:443 (10s connect timeout, #3075 and #3077), and the visual stability timeouts above.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.