Skip to content

Conversation

@nextjs-bot
Copy link
Collaborator

@nextjs-bot nextjs-bot requested a review from eps1lon July 8, 2025 16:26
@ijjk ijjk added CI approved Approve running CI for fork type: next labels Jul 8, 2025
@ijjk
Copy link
Member

ijjk commented Jul 8, 2025

Failing test suites

Commit: edbbfe5

pnpm test-start test/e2e/app-dir/dynamic-io-errors/dynamic-io-errors.test.ts

  • Dynamic IO Errors - Build With --prerender-debug > Dynamic Metadata - Static Route With Suspense > should error the build if generateMetadata is dynamic when the rest of the route is prerenderable
Expand output

● Dynamic IO Errors - Build With --prerender-debug › Dynamic Metadata - Static Route With Suspense › should error the build if generateMetadata is dynamic when the rest of the route is prerenderable

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Dynamic IO Errors - Build With --prerender-debug Dynamic Metadata - Static Route With Suspense should error the build if generateMetadata is dynamic when the rest of the route is prerenderable 1`

- Snapshot  - 3
+ Received  + 0

- Route "/" has a `generateMetadata` that depends on Request data (`cookies()`, etc...) or uncached external data (`fetch(...)`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata
- Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
-
  > Export encountered errors on following paths:
  	/page: /

  321 |         } else {
  322 |           if (inPrerenderDebugMode) {
> 323 |             expect(output).toMatchInlineSnapshot(`
      |                            ^
  324 |              "Route "/" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata
  325 |              Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
  326 | 

  at Object.toMatchInlineSnapshot (e2e/app-dir/dynamic-io-errors/dynamic-io-errors.test.ts:323:28)

Read more about building and testing Next.js in contributing.md.

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/e2e/app-dir/use-cache-dev/use-cache-dev.test.ts (PPR)

  • use-cache-dev > should update cached data after editing a file
Expand output

● use-cache-dev › should update cached data after editing a file

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#fetchedRandom')

  454 |   waitForElementByCss(selector: string, timeout = 10_000) {
  455 |     return this.startChain(async () => {
> 456 |       const el = await page.waitForSelector(selector, {
      |                             ^
  457 |         timeout,
  458 |         state: 'attached',
  459 |       })

  at waitForSelector (lib/browsers/playwright.ts:456:29)
  at Playwright._chain (lib/browsers/playwright.ts:568:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:549:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:455:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:375:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:379:17)
  at Object.elementById (e2e/app-dir/use-cache-dev/use-cache-dev.test.ts:20:19)
  at Proxy._chain (lib/browsers/playwright.ts:568:23)
  at Proxy._chain (lib/browsers/playwright.ts:544:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:387:17)
  at Object.text (e2e/app-dir/use-cache-dev/use-cache-dev.test.ts:20:48)

Read more about building and testing Next.js in contributing.md.

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/e2e/app-dir/use-cache/use-cache.test.ts (PPR)

  • use-cache > should update after unstable_expireTag correctly
  • use-cache > should use revalidate config in fetch
  • use-cache > should cache fetch without no-store
  • use-cache > should override fetch with no-store in use cache properly
  • use-cache > should override fetch with cookies/auth in use cache properly
Expand output

● use-cache › should update after unstable_expireTag correctly

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#a')

  454 |   waitForElementByCss(selector: string, timeout = 10_000) {
  455 |     return this.startChain(async () => {
> 456 |       const el = await page.waitForSelector(selector, {
      |                             ^
  457 |         timeout,
  458 |         state: 'attached',
  459 |       })

  at waitForSelector (lib/browsers/playwright.ts:456:29)
  at Playwright._chain (lib/browsers/playwright.ts:568:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:549:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:455:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:375:17)
  at Object.elementByCss (e2e/app-dir/use-cache/use-cache.test.ts:253:35)
  at Proxy._chain (lib/browsers/playwright.ts:568:23)
  at Proxy._chain (lib/browsers/playwright.ts:544:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:387:17)
  at Object.text (e2e/app-dir/use-cache/use-cache.test.ts:253:54)

● use-cache › should use revalidate config in fetch

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#random')

  454 |   waitForElementByCss(selector: string, timeout = 10_000) {
  455 |     return this.startChain(async () => {
> 456 |       const el = await page.waitForSelector(selector, {
      |                             ^
  457 |         timeout,
  458 |         state: 'attached',
  459 |       })

  at waitForSelector (lib/browsers/playwright.ts:456:29)
  at Playwright._chain (lib/browsers/playwright.ts:568:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:549:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:455:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:375:17)
  at Object.elementByCss (e2e/app-dir/use-cache/use-cache.test.ts:616:40)
  at Proxy._chain (lib/browsers/playwright.ts:568:23)
  at Proxy._chain (lib/browsers/playwright.ts:544:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:387:17)
  at Object.text (e2e/app-dir/use-cache/use-cache.test.ts:616:64)

● use-cache › should cache fetch without no-store

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#random')

  454 |   waitForElementByCss(selector: string, timeout = 10_000) {
  455 |     return this.startChain(async () => {
> 456 |       const el = await page.waitForSelector(selector, {
      |                             ^
  457 |         timeout,
  458 |         state: 'attached',
  459 |       })

  at waitForSelector (lib/browsers/playwright.ts:456:29)
  at Playwright._chain (lib/browsers/playwright.ts:568:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:549:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:455:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:375:17)
  at Object.elementByCss (e2e/app-dir/use-cache/use-cache.test.ts:625:40)
  at Proxy._chain (lib/browsers/playwright.ts:568:23)
  at Proxy._chain (lib/browsers/playwright.ts:544:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:387:17)
  at Object.text (e2e/app-dir/use-cache/use-cache.test.ts:625:64)

● use-cache › should override fetch with no-store in use cache properly

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#random')

  454 |   waitForElementByCss(selector: string, timeout = 10_000) {
  455 |     return this.startChain(async () => {
> 456 |       const el = await page.waitForSelector(selector, {
      |                             ^
  457 |         timeout,
  458 |         state: 'attached',
  459 |       })

  at waitForSelector (lib/browsers/playwright.ts:456:29)
  at Playwright._chain (lib/browsers/playwright.ts:568:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:549:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:455:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:375:17)
  at Object.elementByCss (e2e/app-dir/use-cache/use-cache.test.ts:634:40)
  at Proxy._chain (lib/browsers/playwright.ts:568:23)
  at Proxy._chain (lib/browsers/playwright.ts:544:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:387:17)
  at Object.text (e2e/app-dir/use-cache/use-cache.test.ts:634:64)

● use-cache › should override fetch with cookies/auth in use cache properly

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('#random')

  454 |   waitForElementByCss(selector: string, timeout = 10_000) {
  455 |     return this.startChain(async () => {
> 456 |       const el = await page.waitForSelector(selector, {
      |                             ^
  457 |         timeout,
  458 |         state: 'attached',
  459 |       })

  at waitForSelector (lib/browsers/playwright.ts:456:29)
  at Playwright._chain (lib/browsers/playwright.ts:568:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:549:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:455:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:375:17)
  at Object.elementByCss (e2e/app-dir/use-cache/use-cache.test.ts:665:40)
  at Proxy._chain (lib/browsers/playwright.ts:568:23)
  at Proxy._chain (lib/browsers/playwright.ts:544:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:387:17)
  at Object.text (e2e/app-dir/use-cache/use-cache.test.ts:665:64)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/e2e/app-dir/use-cache-hanging-inputs/use-cache-hanging-inputs.test.ts

  • use-cache-hanging-inputs > when a "use cache" function is closing over an uncached promise > should show an error toast after a timeout
Expand output

● use-cache-hanging-inputs › when a "use cache" function is closing over an uncached promise › should show an error toast after a timeout

expect(received).toBe(expected) // Object.is equality

Expected: "Filling a cache during prerender timed out, likely because request-specific arguments such as params, searchParams, cookies() or dynamic data were used inside \"use cache\"."
Received: "Route \"/bound-args\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense"

  270 |         const cliOutput = stripAnsi(next.cliOutput.slice(outputIndex))
  271 |
> 272 |         expect(errorDescription).toBe(expectedTimeoutErrorMessage)
      |                                  ^
  273 |
  274 |         if (isTurbopack) {
  275 |           expect(errorSource).toMatchInlineSnapshot(`

  at Object.toBe (e2e/app-dir/use-cache-hanging-inputs/use-cache-hanging-inputs.test.ts:272:34)

Read more about building and testing Next.js in contributing.md.

@ijjk ijjk added the tests label Jul 8, 2025
@eps1lon
Copy link
Member

eps1lon commented Jul 8, 2025

Requires facebook/react#33733

@unstubbable
Copy link
Contributor

Also requires #81427

@eps1lon eps1lon closed this Jul 8, 2025
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 23, 2025
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.

5 participants