Skip to content

add handling to skip prefetch payloads if partial#89340

Closed
ztanner wants to merge 1 commit into01-31-add_failing_test_for_unresolved_prefetch_promisesfrom
01-31-add_handling_to_skip_prefetch_payloads_if_partial
Closed

add handling to skip prefetch payloads if partial#89340
ztanner wants to merge 1 commit into01-31-add_failing_test_for_unresolved_prefetch_promisesfrom
01-31-add_handling_to_skip_prefetch_payloads_if_partial

Conversation

@ztanner
Copy link
Member

@ztanner ztanner commented Jan 31, 2026

No description provided.

Copy link
Member Author

ztanner commented Jan 31, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 31, 2026

Failing test suites

Commit: 567d605 | About building and testing Next.js

pnpm test-start test/e2e/app-dir/gesture-transitions/gesture-transitions.test.ts (job)

  • gesture-transitions > shows optimistic state during gesture, then canonical state after (DD)
Expand output

● gesture-transitions › shows optimistic state during gesture, then canonical state after

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('[data-testid="target-page"]') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Object.elementByCss (e2e/app-dir/gesture-transitions/gesture-transitions.test.ts:33:38)

pnpm test-start test/e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts (job)

  • segment cache (basic tests) > navigate with prefetched data (DD)
  • segment cache (basic tests) > skips static layouts during partially static navigation (DD)
Expand output

● segment cache (basic tests) › navigate with prefetched data

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#nav') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts:80:35)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts:73:5)

● segment cache (basic tests) › skips static layouts during partially static navigation

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#static-layout') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts:262:42)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts:257:5)

pnpm test-start-turbo test/e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts (turbopack) (job)

  • searchparams-reuse-loading > should re-use loading from "full" prefetch for param-full URL when navigating to param-less route (DD)
  • searchparams-reuse-loading > should re-use loading from "full" prefetch for param-less URL when navigating to param-full route (DD)
  • searchparams-reuse-loading > should re-use loading from "full" prefetch for param-full URL when navigating to param-full route (DD)
  • searchparams-reuse-loading > With Middleware > should correctly return different RSC data for full prefetches with different searchParam values (DD)
  • searchparams-reuse-loading > Without Middleware > should correctly return different RSC data for full prefetches with different searchParam values (DD)
Expand output

● searchparams-reuse-loading › Without Middleware › should correctly return different RSC data for full prefetches with different searchParam values

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#loading') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at Object.elementById (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:297:30)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at Object.text (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:297:53)

● searchparams-reuse-loading › With Middleware › should correctly return different RSC data for full prefetches with different searchParam values

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#loading') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at Object.elementById (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:297:30)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at Object.text (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:297:53)

● searchparams-reuse-loading › should re-use loading from "full" prefetch for param-full URL when navigating to param-less route

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#loading') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at Object.elementById (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:385:28)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at Object.text (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:385:51)

● searchparams-reuse-loading › should re-use loading from "full" prefetch for param-less URL when navigating to param-full route

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#loading') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at Object.elementById (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:471:28)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at Object.text (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:471:51)

● searchparams-reuse-loading › should re-use loading from "full" prefetch for param-full URL when navigating to param-full route

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#loading') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at Object.elementById (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:557:28)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at Object.text (e2e/app-dir/searchparams-reuse-loading/searchparams-reuse-loading.test.ts:557:51)

pnpm test-start test/e2e/app-dir/concurrent-navigations/mismatching-prefetch.test.ts (job)

  • parallel-route-navigations > should render the right parameters on client navigations (DD)
Expand output

● parallel-route-navigations › should render the right parameters on client navigations

page.waitForSelector: Timeout 10000ms exceeded.
Call log:
  - waiting for locator('[data-file="/[teamID]/sub/other-folder/page.tsx"]') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Object.waitForElementByCss (e2e/app-dir/parallel-route-navigations/parallel-route-navigations.test.ts:87:21)

pnpm test-start test/e2e/next-form/default/next-form-prefetch.test.ts (job)

  • app dir - form prefetching > should prefetch a loading state for the form's target (DD)
Expand output

● app dir - form prefetching › should prefetch a loading state for the form's target

Intercepted request for 'http://localhost:42985/search?query=my+search&_rsc=13g91' was not resolved within 5000ms

  253 |   return new Promise<never>((_, reject) =>
  254 |     AbortSignal.timeout(duration).addEventListener('abort', () =>
> 255 |       reject(new Error(message))
      |              ^
  256 |     )
  257 |   )
  258 | }

  at EventTarget.<anonymous> (e2e/next-form/default/next-form-prefetch.test.ts:255:14)

● app dir - form prefetching › should prefetch a loading state for the form's target

page.waitForSelector: Timeout 10000ms exceeded.
Call log:
  - waiting for locator('#loading') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Object.waitForElementByCss (e2e/next-form/default/next-form-prefetch.test.ts:56:26)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at Object.text (e2e/next-form/default/next-form-prefetch.test.ts:56:58)

pnpm test-start test/e2e/app-dir/segment-cache/prefetch-layout-sharing/prefetch-layout-sharing.test.ts (job)

  • runtime prefetching > cache stale time handling > omits short-lived public caches with a short enough staleTime (DD)
  • runtime prefetching > cache stale time handling > omits private caches with a short enough staleTime (DD)
  • runtime prefetching > errors > aborts the prerender without logging an error when sync IO is used after awaiting cookies() (DD)
  • runtime prefetching > errors > aborts the prerender without logging an error when sync IO is used after awaiting headers() (DD)
  • runtime prefetching > errors > aborts the prerender without logging an error when sync IO is used after awaiting dynamic params (DD)
  • runtime prefetching > errors > aborts the prerender without logging an error when sync IO is used after awaiting searchParams (DD)
  • runtime prefetching > errors > aborts the prerender without logging an error when sync IO is used after awaiting a private cache (DD)
  • runtime prefetching > errors > aborts the prerender without logging an error when sync IO is used after awaiting a quickly-expiring public cache (DD)
  • runtime prefetching > in a page > includes dynamic params, but not dynamic content (DD)
  • runtime prefetching > in a page > includes root params, but not dynamic content (DD)
  • runtime prefetching > in a page > includes search params, but not dynamic content (DD)
  • runtime prefetching > in a page > includes headers, but not dynamic content (DD)
  • runtime prefetching > in a page > includes cookies, but not dynamic content (DD)
  • runtime prefetching > in a private cache > includes dynamic params, but not dynamic content (DD)
  • runtime prefetching > in a private cache > includes root params, but not dynamic content (DD)
  • runtime prefetching > in a private cache > includes search params, but not dynamic content (DD)
  • runtime prefetching > in a private cache > includes headers, but not dynamic content (DD)
  • runtime prefetching > in a private cache > includes cookies, but not dynamic content (DD)
  • runtime prefetching > passed to a public cache > includes dynamic params, but not dynamic content (DD)
  • runtime prefetching > passed to a public cache > includes root params, but not dynamic content (DD)
  • runtime prefetching > passed to a public cache > includes search params, but not dynamic content (DD)
  • runtime prefetching > passed to a public cache > includes headers, but not dynamic content (DD)
  • runtime prefetching > passed to a public cache > includes cookies, but not dynamic content (DD)
  • runtime prefetching > should not cache runtime prefetch responses in the browser cache or server-side > private caches should return new results on each request (DD)
Expand output

● runtime prefetching › in a page › includes dynamic params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:106:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:92:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:106:57)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:92:7)

● runtime prefetching › in a page › includes root params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#root-param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:213:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:197:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:213:62)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:197:7)

● runtime prefetching › in a page › includes search params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#search-param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:322:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:306:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:322:64)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:306:7)

● runtime prefetching › in a page › includes headers, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#header-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:396:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:384:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:396:58)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:384:7)

● runtime prefetching › in a page › includes cookies, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#cookie-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:454:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:442:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:454:58)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:442:7)

● runtime prefetching › in a private cache › includes dynamic params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:106:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:92:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:106:57)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:92:7)

● runtime prefetching › in a private cache › includes root params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#root-param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:213:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:197:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:213:62)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:197:7)

● runtime prefetching › in a private cache › includes search params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#search-param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:322:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:306:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:322:64)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:306:7)

● runtime prefetching › in a private cache › includes headers, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#header-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:396:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:384:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:396:58)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:384:7)

● runtime prefetching › in a private cache › includes cookies, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#cookie-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:454:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:442:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:454:58)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:442:7)

● runtime prefetching › passed to a public cache › includes dynamic params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:106:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:92:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:106:57)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:92:7)

● runtime prefetching › passed to a public cache › includes root params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#root-param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:213:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:197:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:213:62)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:197:7)

● runtime prefetching › passed to a public cache › includes search params, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#search-param-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:322:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:306:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:322:64)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:306:7)

● runtime prefetching › passed to a public cache › includes headers, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#header-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:396:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:384:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:396:58)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:384:7)

● runtime prefetching › passed to a public cache › includes cookies, but not dynamic content

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#cookie-value') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:454:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:442:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:454:58)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:442:7)

● runtime prefetching › should not cache runtime prefetch responses in the browser cache or server-side › private caches should return new results on each request

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#timestamp') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:639:45)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:628:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:639:70)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:628:7)

● runtime prefetching › cache stale time handling › omits short-lived public caches with a short enough staleTime

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#intro') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:827:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:813:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:827:51)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:813:7)

● runtime prefetching › cache stale time handling › omits private caches with a short enough staleTime

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#intro') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:887:30)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:873:7)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:887:51)
  at act (lib/router-act.ts:296:27)
  at Object.<anonymous> (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:873:7)

● runtime prefetching › errors › aborts the prerender without logging an error when sync IO is used after awaiting cookies()

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#intro') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:32)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:53)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9

● runtime prefetching › errors › aborts the prerender without logging an error when sync IO is used after awaiting headers()

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#intro') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:32)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:53)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9

● runtime prefetching › errors › aborts the prerender without logging an error when sync IO is used after awaiting dynamic params

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#intro') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:32)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:53)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9

● runtime prefetching › errors › aborts the prerender without logging an error when sync IO is used after awaiting searchParams

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#intro') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:32)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:53)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9

● runtime prefetching › errors › aborts the prerender without logging an error when sync IO is used after awaiting a private cache

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#intro') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:32)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:53)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9

● runtime prefetching › errors › aborts the prerender without logging an error when sync IO is used after awaiting a quickly-expiring public cache

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#intro') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at elementById (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:32)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at text (e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1025:53)
  at act (lib/router-act.ts:296:27)
  at e2e/app-dir/segment-cache/prefetch-runtime/prefetch-runtime.test.ts:1011:9

@nextjs-bot
Copy link
Collaborator

Stats from current PR

✅ No significant changes detected

📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

  • Listen = TCP port starts accepting connections
  • First Request = HTTP server returns successful response
  • Cold = Fresh build (no cache)
  • Warm = With cached build artifacts

Build Metrics:

  • Fresh = Clean build (no .next directory)
  • Cached = With existing .next directory

Change Thresholds:

  • Time: Changes < 50ms AND < 10%, OR < 2% are insignificant
  • Size: Changes < 1KB AND < 1% are insignificant
  • All other changes are flagged to catch regressions

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 456ms 455ms ▁█▁▁▁
Cold (Ready in log) 435ms 435ms ▂█▁▂▂
Cold (First Request) 1.153s 1.144s ▂█▁▅▄
Warm (Listen) 456ms 456ms ▁█▁▁▁
Warm (Ready in log) 445ms 440ms ▁█▁▁▁
Warm (First Request) 339ms 336ms ▂█▁▂▁
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 456ms 455ms █▁█▁█
Cold (Ready in log) 437ms 439ms ▆▆▇▅▆
Cold (First Request) 1.847s 1.871s ▄▃▅▃▃
Warm (Listen) 456ms 456ms ▁▅▅█▅
Warm (Ready in log) 438ms 437ms ▅▄▅▄▄
Warm (First Request) 1.865s 1.871s ▄▃▅▃▃

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.041s 3.999s ▃█▂▁▁
Cached Build 4.007s 4.041s ▃█▂▁▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 13.784s 13.733s ▂▁▄▁▁
Cached Build 13.952s 14.057s ▂▁▄▁▁
node_modules Size 464 MB 464 MB ▁▁▁▁▁
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **434 kB** → **434 kB** ⚠️ +11 B

81 files with content-based hashes (individual files not comparable between builds)

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 763 B 768 B
Total 763 B 768 B ⚠️ +5 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 451 B 450 B
Total 451 B 450 B ✅ -1 B

📦 Webpack

Client

Main Bundles
Canary PR Change
5528-HASH.js gzip 5.47 kB N/A -
6280-HASH.js gzip 54.5 kB N/A -
6335.HASH.js gzip 169 B N/A -
912-HASH.js gzip 4.53 kB N/A -
e8aec2e4-HASH.js gzip 62.5 kB N/A -
framework-HASH.js gzip 59.7 kB 59.7 kB
main-app-HASH.js gzip 256 B 254 B
main-HASH.js gzip 39 kB 39 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
262-HASH.js gzip N/A 4.52 kB -
2889.HASH.js gzip N/A 169 B -
5602-HASH.js gzip N/A 5.48 kB -
6948ada0-HASH.js gzip N/A 62.5 kB -
9544-HASH.js gzip N/A 55.3 kB -
Total 228 kB 229 kB ⚠️ +685 B
Polyfills
Canary PR Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Total 39.4 kB 39.4 kB
Pages
Canary PR Change
_app-HASH.js gzip 194 B 194 B
_error-HASH.js gzip 183 B 180 B 🟢 3 B (-2%)
css-HASH.js gzip 331 B 330 B
dynamic-HASH.js gzip 1.81 kB 1.81 kB
edge-ssr-HASH.js gzip 256 B 256 B
head-HASH.js gzip 351 B 352 B
hooks-HASH.js gzip 384 B 383 B
image-HASH.js gzip 580 B 581 B
index-HASH.js gzip 260 B 260 B
link-HASH.js gzip 2.49 kB 2.49 kB
routerDirect..HASH.js gzip 320 B 319 B
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 315 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.97 kB ✅ -1 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 126 kB 126 kB
page.js gzip 248 kB 249 kB
Total 375 kB 375 kB ⚠️ +123 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 616 B 616 B
middleware-r..fest.js gzip 156 B 155 B
middleware.js gzip 33.3 kB 33 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 34.9 kB 34.6 kB ✅ -322 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 732 B 736 B
Total 732 B 736 B ⚠️ +4 B
Build Cache
Canary PR Change
0.pack gzip 3.8 MB 3.81 MB 🔴 +14.6 kB (+0%)
index.pack gzip 104 kB 103 kB
index.pack.old gzip 102 kB 103 kB
Total 4 MB 4.02 MB ⚠️ +14.1 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 311 kB 311 kB
app-page-exp..prod.js gzip 166 kB 166 kB
app-page-tur...dev.js gzip 311 kB 311 kB
app-page-tur..prod.js gzip 166 kB 166 kB
app-page-tur...dev.js gzip 308 kB 308 kB
app-page-tur..prod.js gzip 164 kB 164 kB
app-page.run...dev.js gzip 308 kB 308 kB
app-page.run..prod.js gzip 164 kB 164 kB
app-route-ex...dev.js gzip 70.4 kB 70.4 kB
app-route-ex..prod.js gzip 48.9 kB 48.9 kB
app-route-tu...dev.js gzip 70.4 kB 70.4 kB
app-route-tu..prod.js gzip 49 kB 49 kB
app-route-tu...dev.js gzip 70 kB 70 kB
app-route-tu..prod.js gzip 48.7 kB 48.7 kB
app-route.ru...dev.js gzip 70 kB 70 kB
app-route.ru..prod.js gzip 48.7 kB 48.7 kB
dist_client_...dev.js gzip 324 B 324 B
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
dist_client_...dev.js gzip 317 B 317 B
pages-api-tu...dev.js gzip 43.1 kB 43.1 kB
pages-api-tu..prod.js gzip 32.9 kB 32.9 kB
pages-api.ru...dev.js gzip 43.1 kB 43.1 kB
pages-api.ru..prod.js gzip 32.8 kB 32.8 kB
pages-turbo....dev.js gzip 52.4 kB 52.4 kB
pages-turbo...prod.js gzip 39.4 kB 39.4 kB
pages.runtim...dev.js gzip 52.4 kB 52.4 kB
pages.runtim..prod.js gzip 39.3 kB 39.3 kB
server.runti..prod.js gzip 62.5 kB 62.5 kB
Total 2.77 MB 2.77 MB ⚠️ +126 B
📝 Changed Files (8 files)

Files with changes:

  • app-page-exp..ntime.dev.js
  • app-page-exp..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page.runtime.dev.js
  • app-page.runtime.prod.js
View diffs
app-page-exp..ntime.dev.js

Diff too large to display

app-page-exp..time.prod.js

Diff too large to display

app-page-tur..ntime.dev.js

Diff too large to display

app-page-tur..time.prod.js

Diff too large to display

app-page-tur..ntime.dev.js

Diff too large to display

app-page-tur..time.prod.js

Diff too large to display

app-page.runtime.dev.js

Diff too large to display

app-page.runtime.prod.js

Diff too large to display

@ztanner ztanner closed this Feb 17, 2026
@github-actions github-actions bot added the locked label Mar 3, 2026
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants