Skip to content

[test] Expose first-run e2e test failures in CI - #99528

Draft
unstubbable wants to merge 3 commits into
canaryfrom
hl/revert-automatic-test-retries
Draft

unstubbable wants to merge 3 commits into
canaryfrom
hl/revert-automatic-test-retries

Conversation

@unstubbable

@unstubbable unstubbable commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

PR #89929 added automatic retries of individual e2e tests to reduce CI time. These retries reuse the fixture without rerunning beforeAll. A failed attempt can write an ISR cache or change other state. The retry can then pass against a different starting state, potentially hiding a real issue.

Each CI test job runs a shard containing multiple test files. Previously, rerunning a failed job also reran the files that had already passed. PR #92832 caches passing results so a job rerun can skip those files and rerun only the failed files. This reduces both retry cost and time, allowing us to remove the individual-test retries.

This change preserves the timeout improvements from #89929. It also removes the redundant retry opt-out and updates stale comments and test-gate documentation.

The retry removal also exposed test assumptions that required these changes:

  • Both concurrent root-param cache tests now exclude deploy mode. Cross-request deduplication requires requests to share a server process, but deployed requests can reach different function instances. The tests remain enabled in dev and next start.
  • Both affected App Shell tests now refresh and repeat only the preparatory prefetch until root-specific shell segments arrive. Deploy can initially serve generic fallback segments while ISR generates a shell for unprerendered root params; next start generates that shell blockingly. The cache-reuse and navigation assertions remain outside the retry. The static-shell test also loads a fresh home page to prevent BFCache from restoring visible accordions, then primes both language variants. The TODOs leave the direction for consolidating the serving behavior open.

The deploy run and rerun exposed the failures addressed by these test corrections.

@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Tests Passed

Commit: caecc2b

PR #89929 added automatic retries of individual e2e tests to reduce CI
time. These retries reuse the fixture without rerunning `beforeAll`. A
failed attempt can write an ISR cache or change other state. The retry
can then pass against a different starting state, potentially hiding a
real issue.

Each CI test job runs a shard containing multiple test files.
Previously, rerunning a failed job also reran the files that had already
passed. PR #92832 caches passing results so a job rerun can skip those
files and rerun only the failed files. This reduces both retry cost and
time, allowing us to remove the individual-test retries.

This change preserves the timeout improvements from #89929. It also
removes the redundant retry opt-out and updates stale comments and
test-gate documentation.
The concurrent root-param cache tests require requests to share a server
process. Deployed requests can reach different function instances, so
these tests cannot reliably check cross-request cache behavior there.
This change excludes both cases from deploy mode and keeps them in dev
and `next start`.

The per-test retries introduced in #89929 could hide the cold-cache
equality assumption after the first attempt populated the cache.
The first prefetch for unprerendered root params can receive generic
fallback segments on deploy while ISR generates the specific shell.
`next start` generates the shell blockingly on demand.

This change refreshes the browser and repeats only the preparatory
prefetch until it receives the specific shell. The cache-reuse and
navigation assertions still run once. The static-shell test loads a
fresh home page so BFCache cannot restore visible accordions. It then
primes both language variants in the client cache.

The per-test retries introduced in #89929 could hide this serving
difference after an earlier attempt triggered ISR. The TODOs leave the
direction for consolidating the serving behavior open.
@unstubbable
unstubbable force-pushed the hl/revert-automatic-test-retries branch from 3653f96 to caecc2b Compare October 1, 2026 20:58
Comment on lines +1166 to +1169
// The test loads a fresh home page to prevent BFCache from restoring
// visible accordions and triggering uncontrolled prefetches. It primes
// English again before French to keep both root-param entries in the
// client cache.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh jeez that's gnarly

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants