Skip to content

perf(turbopack): Apply minifier before bundling #77926

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 6 commits into
base: canary
Choose a base branch
from
Draft

Conversation

kdy1
Copy link
Member

@kdy1 kdy1 commented Apr 8, 2025

What?

The SWC minifier does not contend with turbopack; we can retry this.

Note: This will guard against most of the static analyzer issues of turbopack because the SWC minifier has a fully featured analyzer.

Why?

The build is about 10% faster.

How?

@kdy1 kdy1 self-assigned this Apr 8, 2025
@ijjk ijjk added the created-by: Turbopack team PRs by the Turbopack team. label Apr 8, 2025
@kdy1 kdy1 changed the title perf(turbopack): Apply minfiier before bundling perf(turbopack): Apply minfier before bundling Apr 8, 2025
@kdy1 kdy1 changed the title perf(turbopack): Apply minfier before bundling perf(turbopack): Apply minifier before bundling Apr 8, 2025
@ijjk
Copy link
Member

ijjk commented Apr 8, 2025

Failing test suites

Commit: b186a07

pnpm test-dev-turbo test/development/app-dir/dev-fetch-hmr/dev-fetch-hmr.test.ts (turbopack)

  • dev-fetch-hmr > should retain module level fetch patching
Expand output

● dev-fetch-hmr › should retain module level fetch patching

expect(received).toContain(expected) // indexOf

Expected substring: "monkey patching is fun"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__809aaf3f._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/a14e7_react-dom_638ad3bb._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_51c25b77._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__49fd8634._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages__app_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages__app_c38d7e79._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__4061f189._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__923cb372._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages__error_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages__error_32bbc921._.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"localhost\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Failed to load chunk server/chunks/ssr/node_modules__pnpm_2fc74abd._.js\",\"stack\":\"Error: Failed to load chunk server/chunks/ssr/node_modules__pnpm_2fc74abd._.js\\n    at loadChunkPath (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)\\n    at Object.loadChunk (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)\\n    at Object.\\u003canonymous\\u003e (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/.next/server/pages/_document.js:3:9)\\n    at Module._compile (node:internal/modules/cjs/loader:1241:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)\\n    at Module.load (node:internal/modules/cjs/loader:1091:32)\\n    at Module._load (node:internal/modules/cjs/loader:938:12)\\n    at Module.require (node:internal/modules/cjs/loader:1115:19)\\n    at mod.require (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/helpers:130:18)\\n    at requirePage (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/require.js:103:84)\\n    at loadComponentsImpl (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/load-components.js:86:38)\\n    at DevServer.findPageComponentsImpl (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/next-server.js:893:77)\\n    at /tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/next-server.js:871:21\\n    at /tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/lib/trace/tracer.js:169:36\\n    at NoopContextManager.with (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7062)\\n    at ContextAPI.with (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:518)\\n    at NoopTracer.startActiveSpan (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:18093)\\n    at ProxyTracer.startActiveSpan (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:18854)\\n    at /tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/lib/trace/tracer.js:151:103\\n    at NoopContextManager.with (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7062)\\n    at ContextAPI.with (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:518)\\n    at NextTracerImpl.trace (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/lib/trace/tracer.js:151:28)\\n    at DevServer.findPageComponents (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/next-server.js:866:41)\\n    at DevServer.findPageComponents (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/dev/next-dev-server.js:628:28)\\n    at async DevServer.renderErrorToResponseImpl (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/base-server.js:2643:26)\\n    at async pipe.req.req (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/base-server.js:2565:30)\\n    at async DevServer.pipeImpl (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/base-server.js:1034:25)\\n    at async NextNodeServer.handleCatchallRenderRequest (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/next-server.js:396:21)\\n    at async DevServer.handleRequestImpl (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/base-server.js:927:17)\\n    at async /tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/dev/next-dev-server.js:371:20\\n    at async Span.traceAsyncFn (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/trace/trace.js:157:20)\\n    at async DevServer.handleRequest (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/dev/next-dev-server.js:368:24)\\n    at async invokeRender (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/lib/router-server.js:237:21)\\n    at async handleRequest (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/lib/router-server.js:428:24)\\n    at async requestHandlerImpl (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/lib/router-server.js:452:13)\\n    at async Server.requestListener (/tmp/next-install-89d532a7e2607367cfaf7c1e34555a229ee3818fc1e7947a74e28ce11b81af0b/node_modules/.pnpm/next@file+..+next-repo-154cbf07529f1e0597062bfc746595e2b7465e6134c8cfaf294b1367ae0731e5+packa_oaixyfn3oic6s2lp2s6mvhu4qe/node_modules/next/dist/server/lib/start-server.js:157:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  11 |   it('should retain module level fetch patching', async () => {
  12 |     const html = await next.render('/')
> 13 |     expect(html).toContain('monkey patching is fun')
     |                  ^
  14 |
  15 |     const magicNumber = cheerio.load(html)('#magic-number').text()
  16 |

  at Object.toContain (development/app-dir/dev-fetch-hmr/dev-fetch-hmr.test.ts:13:18)

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

pnpm test-dev-turbo test/development/app-dir/hmr-move-file/hmr-move-file.test.ts (turbopack)

  • HMR Move File > should work when moving a component to another directory
Expand output

● HMR Move File › should work when moving a component to another directory

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

  434 |     return this.chain(() => {
  435 |       return page
> 436 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  437 |         .then(async (el) => {
  438 |           // it seems selenium waits longer and tests rely on this behavior
  439 |           // so we wait for the load event fire before returning

  at waitForSelector (lib/browsers/playwright.ts:436:10)
  at BrowserInterface.chain (lib/browsers/base.ts:17:23)
  at BrowserInterface.chain [as waitForElementByCss] (lib/browsers/playwright.ts:434:17)
  at BrowserInterface.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:354:17)
  at Object.elementByCss (development/app-dir/hmr-move-file/hmr-move-file.test.ts:11:26)
  at Proxy.chain (lib/browsers/base.ts:17:23)
  at Proxy.chain (lib/browsers/playwright.ts:366:17)
  at Object.text (development/app-dir/hmr-move-file/hmr-move-file.test.ts:11:62)

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

pnpm test test/integration/auto-export-query-error/test/index.test.js (turbopack)

  • Auto Export > production mode > should show warning for query provided for auto exported page correctly
Expand output

● Auto Export › production mode › should show warning for query provided for auto exported page correctly

expect(received).toContain(expected) // indexOf

Expected substring: "Error: you provided query values for / which is an auto-exported page. These can not be applied since the page can no longer be re-rendered on the server. To disable auto-export for this page add `getInitialProps`"
Received string:    " ⚠ Linting is disabled.
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/auto-export-query-error/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/auto-export-query-error/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/auto-export-query-error/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  "
  at Object.toContain (integration/auto-export-query-error/test/index.test.js:13:20)

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

pnpm test test/integration/app-document-style-fragment/test/index.test.js (turbopack)

  • Custom Document Fragment Styles > production mode > correctly adds styles from fragment styles key
Expand output

● Custom Document Fragment Styles › production mode › correctly adds styles from fragment styles key

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 947ms
   Collecting page data ...
Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/app-document-style-fragment/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/app-document-style-fragment/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/app-document-style-fragment/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    [cause]: ReferenceError: RUNTIME_ROOT is not defined
  at loadChunkPath (../../../test/integration/app-document-style-fragment/.next/server/chunks/ssr/[turbopack]_runtime.js:299:39)
  at Object.loadChunk (../../../test/integration/app-document-style-fragment/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/app-document-style-fragment/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28)
  }
  > Build error occurred
  Error: Failed to collect page data for /
  at <unknown> (../dist/build/utils.js:1030:37) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

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

pnpm test-dev-turbo test/development/api-cors-with-rewrite/index.test.ts (turbopack)

  • Rewritten API Requests should pass OPTIONS requests to the api function > should pass OPTIONS requests to the api function
Expand output

● Rewritten API Requests should pass OPTIONS requests to the api function › should pass OPTIONS requests to the api function

expect(received).toContain(expected) // indexOf

Expected substring: "successfully hit some-endpoint!"
Received string:    ""

  41 |       },
  42 |     })
> 43 |     expect(await res.text()).toContain('successfully hit some-endpoint!')
     |                              ^
  44 |   })
  45 | })
  46 |

  at Object.toContain (development/api-cors-with-rewrite/index.test.ts:43:30)

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

pnpm test test/integration/404-page-ssg/test/index.test.js (turbopack)

  • 404 Page Support SSG > production mode > should build successfully
  • 404 Page Support SSG > production mode > should respond to 404 correctly
  • 404 Page Support SSG > production mode > should render error correctly
  • 404 Page Support SSG > production mode > should not show an error in the logs for 404 SSG
  • 404 Page Support SSG > production mode > should render index page normal
  • 404 Page Support SSG > production mode > should not revalidate custom 404 page
  • 404 Page Support SSG > production mode > should set pages404 in routes-manifest correctly
  • 404 Page Support SSG > production mode > should have 404 page in prerender-manifest
Expand output

● 404 Page Support SSG › production mode › should build successfully

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

Expected: 0
Received: 1

  100 |         })
  101 |
> 102 |         expect(code).toBe(0)
      |                      ^
  103 |         expect(buildStderr).not.toMatch(gip404Err)
  104 |         expect(buildStdout).not.toMatch(gip404Err)
  105 |

  at Object.toBe (integration/404-page-ssg/test/index.test.js:102:22)

● 404 Page Support SSG › production mode › should respond to 404 correctly

TypeError: Invalid URL

  179 | ): Promise<Response> {
  180 |   const url = query ? withQuery(pathname, query) : pathname
> 181 |   return fetch(getFullUrl(appPort, url), opts)
      |               ^
  182 | }
  183 |
  184 | export function renderViaHTTP(

  at parseURL (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:181:15)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:27:35)

● 404 Page Support SSG › production mode › should render error correctly

TypeError: Invalid URL

  179 | ): Promise<Response> {
  180 |   const url = query ? withQuery(pathname, query) : pathname
> 181 |   return fetch(getFullUrl(appPort, url), opts)
      |               ^
  182 | }
  183 |
  184 | export function renderViaHTTP(

  at parseURL (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:181:15)
  at fetchViaHTTP (lib/next-test-utils.ts:190:10)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:33:37)

● 404 Page Support SSG › production mode › should not show an error in the logs for 404 SSG

TypeError: Invalid URL

  179 | ): Promise<Response> {
  180 |   const url = query ? withQuery(pathname, query) : pathname
> 181 |   return fetch(getFullUrl(appPort, url), opts)
      |               ^
  182 | }
  183 |
  184 | export function renderViaHTTP(

  at parseURL (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:181:15)
  at fetchViaHTTP (lib/next-test-utils.ts:190:10)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:38:24)

● 404 Page Support SSG › production mode › should render index page normal

TypeError: Invalid URL

  179 | ): Promise<Response> {
  180 |   const url = query ? withQuery(pathname, query) : pathname
> 181 |   return fetch(getFullUrl(appPort, url), opts)
      |               ^
  182 | }
  183 |
  184 | export function renderViaHTTP(

  at parseURL (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:181:15)
  at fetchViaHTTP (lib/next-test-utils.ts:190:10)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:44:37)

● 404 Page Support SSG › production mode › should not revalidate custom 404 page

TypeError: Invalid URL

  179 | ): Promise<Response> {
  180 |   const url = query ? withQuery(pathname, query) : pathname
> 181 |   return fetch(getFullUrl(appPort, url), opts)
      |               ^
  182 | }
  183 |
  184 | export function renderViaHTTP(

  at parseURL (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:181:15)
  at fetchViaHTTP (lib/next-test-utils.ts:190:10)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:50:39)

● 404 Page Support SSG › production mode › should set pages404 in routes-manifest correctly

ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/404-page-ssg/.next/routes-manifest.json'

● 404 Page Support SSG › production mode › should have 404 page in prerender-manifest

ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/404-page-ssg/.next/prerender-manifest.json'

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

pnpm test-dev-turbo test/development/app-dir/devtool-copy-button/devtool-copy-button.test.ts (turbopack)

  • app-dir - devtool-copy-button > should has inspect url copy button
Expand output

● app-dir - devtool-copy-button › should has inspect url copy button

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('[data-nextjs-data-runtime-error-copy-devtools-url]')

  434 |     return this.chain(() => {
  435 |       return page
> 436 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  437 |         .then(async (el) => {
  438 |           // it seems selenium waits longer and tests rely on this behavior
  439 |           // so we wait for the load event fire before returning

  at waitForSelector (lib/browsers/playwright.ts:436:10)
  at BrowserInterface.chain (lib/browsers/base.ts:17:23)
  at BrowserInterface.chain [as waitForElementByCss] (lib/browsers/playwright.ts:434:17)
  at BrowserInterface.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:354:17)
  at Object.elementByCss (development/app-dir/devtool-copy-button/devtool-copy-button.test.ts:16:10)
  at Proxy.chain (lib/browsers/base.ts:17:23)
  at Proxy.chain (lib/browsers/playwright.ts:386:17)
  at Object.getAttribute (development/app-dir/devtool-copy-button/devtool-copy-button.test.ts:17:10)

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

pnpm test test/integration/client-shallow-routing/test/index.test.js (turbopack)

  • Client Shallow Routing > production mode > should not shallowly navigate back in history when current page was not shallow
  • Client Shallow Routing > production mode > should not shallowly navigate forwards in history when current page was not shallow
Expand output

● Client Shallow Routing › production mode › should not shallowly navigate back in history when current page was not shallow

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1130ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/client-shallow-routing/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/client-shallow-routing/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/client-shallow-routing/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● Client Shallow Routing › production mode › should not shallowly navigate forwards in history when current page was not shallow

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1130ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/client-shallow-routing/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/client-shallow-routing/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/client-shallow-routing/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

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

pnpm test test/integration/basepath-root-catch-all/test/index.test.js (turbopack)

  • production mode > should use correct data URL for root catch-all
Expand output

● production mode › should use correct data URL for root catch-all

command failed with code 1 signal null
 ⚠ Linting is disabled.
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/basepath-root-catch-all/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/basepath-root-catch-all/next.config.js
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/basepath-root-catch-all/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/basepath-root-catch-all/next.config.js
 ✓ Compiled successfully in 1692ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/basepath-root-catch-all/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/basepath-root-catch-all/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/basepath-root-catch-all/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

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

pnpm test-dev-turbo test/development/acceptance-app/ReactRefreshLogBoxMisc.test.ts (turbopack)

  • ReactRefreshLogBox app > server-side only compilation errors
Expand output

● ReactRefreshLogBox app › server-side only compilation errors

Application is in inconsistent state: timeout.

  92 |             }
  93 |             if (status !== 'pending') {
> 94 |               throw new Error(
     |                     ^
  95 |                 `Application is in inconsistent state: ${status}.`
  96 |               )
  97 |             }

  at Object.patch (lib/development-sandbox.ts:94:21)
  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBoxMisc.test.ts:16:5)

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

pnpm test test/integration/catches-missing-getStaticProps/test/index.test.js (turbopack)

  • Catches Missing getStaticProps > production mode > should catch it in server build mode
Expand output

● Catches Missing getStaticProps › production mode › should catch it in server build mode

expect(received).toMatch(expected)

Expected pattern: /getStaticPaths was added without a getStaticProps in/
Received string:  " ⚠ Linting is disabled.
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/catches-missing-getStaticProps/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/catches-missing-getStaticProps/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/catches-missing-getStaticProps/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  "
  at Object.toMatch (integration/catches-missing-getStaticProps/test/index.test.js:36:24)

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

pnpm test test/integration/absolute-assetprefix/test/index.test.js (turbopack)

  • absolute assetPrefix with path prefix > production mode > should not fetch static data from a CDN
  • absolute assetPrefix with path prefix > production mode > should fetch from cache correctly
  • absolute assetPrefix with path prefix > production mode > should work with getStaticPaths prerendered
  • absolute assetPrefix with path prefix > production mode > should work with getStaticPaths fallback
  • absolute assetPrefix with path prefix > production mode > should work with getServerSideProps
Expand output

● absolute assetPrefix with path prefix › production mode › should not fetch static data from a CDN

command failed with code 1 signal null
 ⚠ Linting is disabled.
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
 ✓ Compiled successfully in 1487ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/absolute-assetprefix/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● absolute assetPrefix with path prefix › production mode › should fetch from cache correctly

command failed with code 1 signal null
 ⚠ Linting is disabled.
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
 ✓ Compiled successfully in 1487ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/absolute-assetprefix/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● absolute assetPrefix with path prefix › production mode › should work with getStaticPaths prerendered

command failed with code 1 signal null
 ⚠ Linting is disabled.
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
 ✓ Compiled successfully in 1487ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/absolute-assetprefix/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● absolute assetPrefix with path prefix › production mode › should work with getStaticPaths fallback

command failed with code 1 signal null
 ⚠ Linting is disabled.
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
 ✓ Compiled successfully in 1487ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/absolute-assetprefix/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● absolute assetPrefix with path prefix › production mode › should work with getServerSideProps

command failed with code 1 signal null
 ⚠ Linting is disabled.
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/absolute-assetprefix/next.config.js
 ✓ Compiled successfully in 1487ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/absolute-assetprefix/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/absolute-assetprefix/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

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

pnpm test test/integration/404-page-app/test/index.test.js (turbopack)

  • 404 Page Support with _app > development mode > should not show pages/404 GIP error if _app has GIP
Expand output

● 404 Page Support with _app › development mode › should not show pages/404 GIP error if _app has GIP

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

Expected: 404
Received: 500

  83 |       it('should not show pages/404 GIP error if _app has GIP', async () => {
  84 |         const res = await fetchViaHTTP(appPort, '/abc')
> 85 |         expect(res.status).toBe(404)
     |                            ^
  86 |         const $ = cheerio.load(await res.text())
  87 |         expect($('#404-title').text()).toBe('Hi There')
  88 |         expect(stderr).not.toMatch(gip404Err)

  at Object.toBe (integration/404-page-app/test/index.test.js:85:28)

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

pnpm test test/integration/api-catch-all/test/index.test.js (turbopack)

  • API routes > dev support > should return data when catch-all
  • API routes > dev support > should return data when catch-all with index and trailing slash
  • API routes > dev support > should return data when catch-all with index and no trailing slash
Expand output

● API routes › dev support › should return data when catch-all

expect(received).toEqual(expected) // deep equality

Expected: {"slug": ["1"]}
Received: false

  20 |     )
  21 |
> 22 |     expect(data).toEqual({ slug: ['1'] })
     |                  ^
  23 |   })
  24 |
  25 |   it('should return redirect when catch-all with index and trailing slash', async () => {

  at Object.toEqual (integration/api-catch-all/test/index.test.js:22:18)

● API routes › dev support › should return data when catch-all with index and trailing slash

expect(received).toEqual(expected) // deep equality

Expected: {}
Received: false

  38 |     )
  39 |
> 40 |     expect(data).toEqual({})
     |                  ^
  41 |   })
  42 |
  43 |   it('should return data when catch-all with index and no trailing slash', async () => {

  at Object.toEqual (integration/api-catch-all/test/index.test.js:40:18)

● API routes › dev support › should return data when catch-all with index and no trailing slash

expect(received).toEqual(expected) // deep equality

Expected: {}
Received: false

  46 |     )
  47 |
> 48 |     expect(data).toEqual({})
     |                  ^
  49 |   })
  50 | }
  51 |

  at Object.toEqual (integration/api-catch-all/test/index.test.js:48:18)

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

pnpm test-start-turbo test/e2e/app-dir/app-prefetch-static/app-prefetch-static.test.ts (turbopack)

  • app-prefetch-static > should correctly navigate between static & dynamic pages
Expand output

● app-prefetch-static › should correctly navigate between static & dynamic pages

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test-start-turbo test/e2e/app-dir/app-rendering/rendering.test.ts (turbopack)

  • app dir rendering > should serve app/page.server.js at /
  • app dir rendering > ISR > should revalidate the page when revalidate is configured
  • app dir rendering > SSR only > should run data in layout and page
  • app dir rendering > SSR only > should run data fetch in parallel
  • app dir rendering > static only > should run data in layout and page
  • app dir rendering > static only > should run data in parallel and use cached version for production
Expand output

● app dir rendering › should serve app/page.server.js at /

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir rendering › SSR only › should run data in layout and page

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir rendering › SSR only › should run data fetch in parallel

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir rendering › static only › should run data in layout and page

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir rendering › static only › should run data in parallel and use cached version for production

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir rendering › ISR › should revalidate the page when revalidate is configured

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir rendering › mixed static and dynamic › should generate static data during build and use it

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test-start-turbo test/e2e/app-dir/app-esm-js/index.test.ts (turbopack)

  • app-dir - esm js extension > should be able to render nextjs api in app router
  • app-dir - esm js extension > should be able to use nextjs api in pages router
  • app-dir - esm js extension > should support next/og image
Expand output

● app-dir - esm js extension › should be able to render nextjs api in app router

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app-dir - esm js extension › should be able to use nextjs api in pages router

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app-dir - esm js extension › should support next/og image

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test-start-turbo test/e2e/app-dir/actions-allowed-origins/app-action-disallowed-origins.test.ts (turbopack)

  • app-dir action disallowed origins > should error if x-forwarded-host does not match the origin
Expand output

● app-dir action disallowed origins › should error if x-forwarded-host does not match the origin

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test-start-turbo test/e2e/app-dir/app-validation/validation.test.ts (turbopack)

  • app-dir absolute assetPrefix > bundles should return 200 on served assetPrefix
Expand output

● app-dir absolute assetPrefix › bundles should return 200 on served assetPrefix

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test-start-turbo test/e2e/app-dir/app-compilation/index.test.ts (turbopack)

  • app dir > Loading > should render loading.js in initial html for slow page
Expand output

● app dir › Loading › should render loading.js in initial html for slow page

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test test/integration/custom-page-extension/test/index.test.js (turbopack)

  • Custom page extension > development mode > should work with normal page
  • Custom page extension > development mode > should work dynamic page
Expand output

● Custom page extension › development mode › should work with normal page

expect(received).toContain(expected) // indexOf

Expected substring: "Blog - CPE"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__ced40a76._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_6fcc74e8._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_0b212506._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__7f96bd72._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_01eab770._.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js\",\"stack\":\"Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js\\n    at loadChunkPath (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)\\n    at Object.loadChunk (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)\\n    at Object.\\u003canonymous\\u003e (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/pages/_document.js:3:9)\\n    at Module._compile (node:internal/modules/cjs/loader:1256:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)\\n    at Module.load (node:internal/modules/cjs/loader:1119:32)\\n    at Module._load (node:internal/modules/cjs/loader:960:12)\\n    at Module.require (node:internal/modules/cjs/loader:1143:19)\\n    at mod.require (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/cjs/helpers:119:18)\\n    at requirePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/require.js:103:84)\\n    at loadComponentsImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/load-components.js:86:38)\\n    at DevServer.findPageComponentsImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:893:77)\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:871:21\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:169:36\\n    at NoopContextManager.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js:25:19)\\n    at ContextAPI.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\\n    at NoopTracer.startActiveSpan (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js:65:31)\\n    at ProxyTracer.startActiveSpan (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js:36:24)\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:151:103\\n    at NoopContextManager.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js:25:19)\\n    at ContextAPI.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\\n    at NextTracerImpl.trace (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:151:28)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:866:41)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:628:28)\\n    at async DevServer.renderErrorToResponseImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:2643:26)\\n    at async pipe.req.req (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:2565:30)\\n    at async DevServer.pipeImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1034:25)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:396:21)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:927:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:371:20\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevServer.handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:368:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:237:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:428:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:452:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:157:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  18 |   it('should work with normal page', async () => {
  19 |     const html = await renderViaHTTP(appPort, '/blog')
> 20 |     expect(html).toContain('Blog - CPE')
     |                  ^
  21 |   })
  22 |
  23 |   it('should work dynamic page', async () => {

  at Object.toContain (integration/custom-page-extension/test/index.test.js:20:18)

● Custom page extension › development mode › should work dynamic page

expect(received).toContain(expected) // indexOf

Expected substring: "Post - nextjs"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__ced40a76._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_6fcc74e8._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_0b212506._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__7f96bd72._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_01eab770._.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js\",\"stack\":\"Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js\\n    at loadChunkPath (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)\\n    at Object.loadChunk (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)\\n    at Object.\\u003canonymous\\u003e (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/pages/_document.js:3:9)\\n    at Module._compile (node:internal/modules/cjs/loader:1256:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)\\n    at Module.load (node:internal/modules/cjs/loader:1119:32)\\n    at Module._load (node:internal/modules/cjs/loader:960:12)\\n    at Module.require (node:internal/modules/cjs/loader:1143:19)\\n    at mod.require (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/cjs/helpers:119:18)\\n    at requirePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/require.js:103:84)\\n    at loadComponentsImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/load-components.js:86:38)\\n    at DevServer.findPageComponentsImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:893:77)\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:871:21\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:169:36\\n    at NoopContextManager.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js:25:19)\\n    at ContextAPI.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\\n    at NoopTracer.startActiveSpan (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js:65:31)\\n    at ProxyTracer.startActiveSpan (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js:36:24)\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:151:103\\n    at NoopContextManager.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js:25:19)\\n    at ContextAPI.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\\n    at NextTracerImpl.trace (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:151:28)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:866:41)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:628:28)\\n    at async DevServer.renderErrorToResponseImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:2643:26)\\n    at async pipe.req.req (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:2565:30)\\n    at async DevServer.pipeImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1034:25)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:396:21)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:927:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:371:20\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevServer.handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:368:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:237:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:428:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:452:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:157:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  23 |   it('should work dynamic page', async () => {
  24 |     const html = await renderViaHTTP(appPort, '/blog/nextjs')
> 25 |     expect(html).toContain('Post - nextjs')
     |                  ^
  26 |   })
  27 | }
  28 |

  at Object.toContain (integration/custom-page-extension/test/index.test.js:25:18)

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

pnpm test-start-turbo test/e2e/app-dir/app-a11y/index.test.ts (turbopack)

  • app dir client cache semantics (default semantics) > should renew the initial seeded data after expiration time
  • app dir client cache semantics (default semantics) > prefetch={false} > should not prefetch the page at all
  • app dir client cache semantics (default semantics) > prefetch={false} > should not re-use the page segment cache
  • app dir client cache semantics (default semantics) > prefetch={true} > should prefetch the full page
  • app dir client cache semantics (default semantics) > prefetch={true} > should re-use the cache for the full page, only for 5 mins
  • app dir client cache semantics (default semantics) > prefetch={true} > should prefetch again after 5 mins if the link is visible again
  • app dir client cache semantics (default semantics) > prefetch={undefined} - default > should prefetch partially a dynamic page
  • app dir client cache semantics (default semantics) > prefetch={undefined} - default > should not re-use the page segment cache
  • app dir client cache semantics (default semantics) > prefetch={undefined} - default > should refetch the full page after 5 mins
  • app dir client cache semantics (default semantics) > prefetch={undefined} - default > should respect a loading boundary that returns null
Expand output

● app dir client cache semantics (default semantics) › prefetch={true} › should prefetch the full page

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › prefetch={true} › should re-use the cache for the full page, only for 5 mins

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › prefetch={true} › should prefetch again after 5 mins if the link is visible again

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › prefetch={false} › should not prefetch the page at all

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › prefetch={false} › should not re-use the page segment cache

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › prefetch={undefined} - default › should prefetch partially a dynamic page

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › prefetch={undefined} - default › should not re-use the page segment cache

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › prefetch={undefined} - default › should refetch the full page after 5 mins

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › prefetch={undefined} - default › should respect a loading boundary that returns null

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (default semantics) › should renew the initial seeded data after expiration time

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test test/integration/500-page/test/gsp-gssp.test.js (turbopack)

  • gsp-gssp > development mode > shows error with getServerSideProps in pages/500 dev
Expand output

● gsp-gssp › development mode › shows error with getServerSideProps in pages/500 dev

expect(received).toMatch(expected)

Expected pattern: /`pages\/500` can not have getInitialProps\/getServerSideProps/
Received string:  " ⨯ Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js

  at Object.<anonymous> (../../../test/integration/500-page/.next/server/pages/_document.js:3:9)
  at mod.require (../src/server/require-hook.ts:70:25)
  at requirePage (../src/server/require.ts:121:8)
  at loadComponentsImpl (../src/server/load-components.ts:167:18)
  at DevServer.findPageComponentsImpl (../src/server/next-server.ts:925:48)
  at <unknown> (../src/server/next-server.ts:883:13)
  at <unknown> (../src/server/lib/trace/tracer.ts:351:27)
  at <unknown> (../src/server/lib/trace/tracer.ts:304:31)
  at NextTracerImpl.trace (../src/server/lib/trace/tracer.ts:303:24)
  at DevServer.findPageComponents (../src/server/next-server.ts:874:23)
  at DevServer.findPageComponents (../src/server/dev/next-dev-server.ts:891:23)
  at async DevServer.renderErrorToResponseImpl (../src/server/base-server.ts:4096:17)
  at async DevServer.renderToResponseImpl (../src/server/base-server.ts:3896:8)
  at async DevServer.pipeImpl (../src/server/base-server.ts:1812:20)
  at async NextNodeServer.handleCatchallRenderRequest (../src/server/next-server.ts:1181:6)
  at async DevServer.handleRequestImpl (../src/server/base-server.ts:1565:8)
  at async (../src/server/dev/next-dev-server.ts:512:13)
  at async Span.traceAsyncFn (../src/trace/trace.ts:143:13)
  at async DevServer.handleRequest (../src/server/dev/next-dev-server.ts:510:19)
  at async invokeRender (../src/server/lib/router-server.ts:295:10)
  at async handleRequest (../src/server/lib/router-server.ts:544:15)
  at async requestHandlerImpl (../src/server/lib/router-server.ts:590:6)
  at async Server.requestListener (../src/server/lib/start-server.ts:153:6)
    68 |   }
    69 |
  > 70 |   return originalRequire.call(this, request)
       |                         ^
    71 | }
    72 | {
    [cause]: ReferenceError: RUNTIME_ROOT is not defined
  at Object.<anonymous> (../../../test/integration/500-page/.next/server/pages/_document.js:3:9)
  at mod.require (../src/server/require-hook.ts:70:25)
  at requirePage (../src/server/require.ts:121:8)
  at loadComponentsImpl (../src/server/load-components.ts:167:18)
  at DevServer.findPageComponentsImpl (../src/server/next-server.ts:925:48)
  at <unknown> (../src/server/next-server.ts:883:13)
  at <unknown> (../src/server/lib/trace/tracer.ts:351:27)
  at <unknown> (../src/server/lib/trace/tracer.ts:304:31)
  at NextTracerImpl.trace (../src/server/lib/trace/tracer.ts:303:24)
  at DevServer.findPageComponents (../src/server/next-server.ts:874:23)
  at DevServer.findPageComponents (../src/server/dev/next-dev-server.ts:891:23)
  at async DevServer.renderErrorToResponseImpl (../src/server/base-server.ts:4096:17)
  at async DevServer.renderToResponseImpl (../src/server/base-server.ts:3896:8)
  at async DevServer.pipeImpl (../src/server/base-server.ts:1812:20)
  at async NextNodeServer.handleCatchallRenderRequest (../src/server/next-server.ts:1181:6)
  at async DevServer.handleRequestImpl (../src/server/base-server.ts:1565:8)
  at async (../src/server/dev/next-dev-server.ts:512:13)
  at async Span.traceAsyncFn (../src/trace/trace.ts:143:13)
  at async DevServer.handleRequest (../src/server/dev/next-dev-server.ts:510:19)
  at async invokeRender (../src/server/lib/router-server.ts:295:10)
  at async handleRequest (../src/server/lib/router-server.ts:544:15)
  at async requestHandlerImpl (../src/server/lib/router-server.ts:590:6)
  at async Server.requestListener (../src/server/lib/start-server.ts:153:6)
      68 |   }
      69 |
    > 70 |   return originalRequire.call(this, request)
         |                         ^
      71 | }
      72 |
  }
   ⨯ Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js
  at Object.<anonymous> (../../../test/integration/500-page/.next/server/pages/_document.js:3:9)
  at mod.require (../src/server/require-hook.ts:70:25)
  at requirePage (../src/server/require.ts:121:8)
  at loadComponentsImpl (../src/server/load-components.ts:167:18)
  at DevServer.findPageComponentsImpl (../src/server/next-server.ts:925:48)
  at <unknown> (../src/server/next-server.ts:883:13)
  at <unknown> (../src/server/lib/trace/tracer.ts:351:27)
  at <unknown> (../src/server/lib/trace/tracer.ts:304:31)
  at NextTracerImpl.trace (../src/server/lib/trace/tracer.ts:303:24)
  at DevServer.findPageComponents (../src/server/next-server.ts:874:23)
  at DevServer.findPageComponents (../src/server/dev/next-dev-server.ts:891:23)
  at async DevServer.renderPageComponent (../src/server/base-server.ts:3759:19)
  at async DevServer.renderToResponseImpl (../src/server/base-server.ts:3835:23)
  at async DevServer.pipeImpl (../src/server/base-server.ts:1812:20)
  at async NextNodeServer.handleCatchallRenderRequest (../src/server/next-server.ts:1181:6)
  at async DevServer.handleRequestImpl (../src/server/base-server.ts:1565:8)
  at async (../src/server/dev/next-dev-server.ts:512:13)
  at async Span.traceAsyncFn (../src/trace/trace.ts:143:13)
  at async DevServer.handleRequest (../src/server/dev/next-dev-server.ts:510:19)
  at async invokeRender (../src/server/lib/router-server.ts:295:10)
  at async handleRequest (../src/server/lib/router-server.ts:544:15)
  at async requestHandlerImpl (../src/server/lib/router-server.ts:590:6)
  at async Server.requestListener (../src/server/lib/start-server.ts:153:6)
    68 |   }
    69 |
  > 70 |   return originalRequire.call(this, request)
       |                         ^
    71 | }
    72 | {
    page: '/500',
    [cause]: ReferenceError: RUNTIME_ROOT is not defined
  at Object.<anonymous> (../../../test/integration/500-page/.next/server/pages/_document.js:3:9)
  at mod.require (../src/server/require-hook.ts:70:25)
  at requirePage (../src/server/require.ts:121:8)
  at loadComponentsImpl (../src/server/load-components.ts:167:18)
  at DevServer.findPageComponentsImpl (../src/server/next-server.ts:925:48)
  at <unknown> (../src/server/next-server.ts:883:13)
  at <unknown> (../src/server/lib/trace/tracer.ts:351:27)
  at <unknown> (../src/server/lib/trace/tracer.ts:304:31)
  at NextTracerImpl.trace (../src/server/lib/trace/tracer.ts:303:24)
  at DevServer.findPageComponents (../src/server/next-server.ts:874:23)
  at DevServer.findPageComponents (../src/server/dev/next-dev-server.ts:891:23)
  at async DevServer.renderPageComponent (../src/server/base-server.ts:3759:19)
  at async DevServer.renderToResponseImpl (../src/server/base-server.ts:3835:23)
  at async DevServer.pipeImpl (../src/server/base-server.ts:1812:20)
  at async NextNodeServer.handleCatchallRenderRequest (../src/server/next-server.ts:1181:6)
  at async DevServer.handleRequestImpl (../src/server/base-server.ts:1565:8)
  at async (../src/server/dev/next-dev-server.ts:512:13)
  at async Span.traceAsyncFn (../src/trace/trace.ts:143:13)
  at async DevServer.handleRequest (../src/server/dev/next-dev-server.ts:510:19)
  at async invokeRender (../src/server/lib/router-server.ts:295:10)
  at async handleRequest (../src/server/lib/router-server.ts:544:15)
  at async requestHandlerImpl (../src/server/lib/router-server.ts:590:6)
  at async Server.requestListener (../src/server/lib/start-server.ts:153:6)
      68 |   }
      69 |
    > 70 |   return originalRequire.call(this, request)
         |                         ^
      71 | }
      72 |
  }
   ⨯ Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js
  at Object.<anonymous> (../../../test/integration/500-page/.next/server/pages/_document.js:3:9)
  at mod.require (../src/server/require-hook.ts:70:25)
  at requirePage (../src/server/require.ts:121:8)
  at loadComponentsImpl (../src/server/load-components.ts:167:18)
  at DevServer.findPageComponentsImpl (../src/server/next-server.ts:925:48)
  at <unknown> (../src/server/next-server.ts:883:13)
  at <unknown> (../src/server/lib/trace/tracer.ts:351:27)
  at <unknown> (../src/server/lib/trace/tracer.ts:304:31)
  at NextTracerImpl.trace (../src/server/lib/trace/tracer.ts:303:24)
  at DevServer.findPageComponents (../src/server/next-server.ts:874:23)
  at DevServer.findPageComponents (../src/server/dev/next-dev-server.ts:891:23)
  at async DevServer.renderErrorToResponseImpl (../src/server/base-server.ts:4096:17)
  at async pipe.req.req (../src/server/base-server.ts:3997:25)
  at async DevServer.pipeImpl (../src/server/base-server.ts:1812:20)
  at async NextNodeServer.handleCatchallRenderRequest (../src/server/next-server.ts:1199:8)
  at async DevServer.handleRequestImpl (../src/server/base-server.ts:1565:8)
  at async (../src/server/dev/next-dev-server.ts:512:13)
  at async Span.traceAsyncFn (../src/trace/trace.ts:143:13)
  at async DevServer.handleRequest (../src/server/dev/next-dev-server.ts:510:19)
  at async invokeRender (../src/server/lib/router-server.ts:295:10)
  at async handleRequest (../src/server/lib/router-server.ts:544:15)
  at async requestHandlerImpl (../src/server/lib/router-server.ts:590:6)
  at async Server.requestListener (../src/server/lib/start-server.ts:153:6)
    68 |   }
    69 |
  > 70 |   return originalRequire.call(this, request)
       |                         ^
    71 | }
    72 | {
    [cause]: ReferenceError: RUNTIME_ROOT is not defined
  at Object.<anonymous> (../../../test/integration/500-page/.next/server/pages/_document.js:3:9)
  at mod.require (../src/server/require-hook.ts:70:25)
  at requirePage (../src/server/require.ts:121:8)
  at loadComponentsImpl (../src/server/load-components.ts:167:18)
  at DevServer.findPageComponentsImpl (../src/server/next-server.ts:925:48)
  at <unknown> (../src/server/next-server.ts:883:13)
  at <unknown> (../src/server/lib/trace/tracer.ts:351:27)
  at <unknown> (../src/server/lib/trace/tracer.ts:304:31)
  at NextTracerImpl.trace (../src/server/lib/trace/tracer.ts:303:24)
  at DevServer.findPageComponents (../src/server/next-server.ts:874:23)
  at DevServer.findPageComponents (../src/server/dev/next-dev-server.ts:891:23)
  at async DevServer.renderErrorToResponseImpl (../src/server/base-server.ts:4096:17)
  at async pipe.req.req (../src/server/base-server.ts:3997:25)
  at async DevServer.pipeImpl (../src/server/base-server.ts:1812:20)
  at async NextNodeServer.handleCatchallRenderRequest (../src/server/next-server.ts:1199:8)
  at async DevServer.handleRequestImpl (../src/server/base-server.ts:1565:8)
  at async (../src/server/dev/next-dev-server.ts:512:13)
  at async Span.traceAsyncFn (../src/trace/trace.ts:143:13)
  at async DevServer.handleRequest (../src/server/dev/next-dev-server.ts:510:19)
  at async invokeRender (../src/server/lib/router-server.ts:295:10)
  at async handleRequest (../src/server/lib/router-server.ts:544:15)
  at async requestHandlerImpl (../src/server/lib/router-server.ts:590:6)
  at async Server.requestListener (../src/server/lib/start-server.ts:153:6)
      68 |   }
      69 |
    > 70 |   return originalRequire.call(this, request)
         |                         ^
      71 | }
      72 |
  }
  "
  at Object.toMatch (integration/500-page/test/gsp-gssp.test.js:244:24)

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

pnpm test-dev test/development/next-config-ts/turbo/index.test.ts

  • next-config-ts - turbopack > should work with Turbopack
Expand output

● next-config-ts - turbopack › should work with Turbopack

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

Expected: "foo"
Received: ""

   9 |   it('should work with Turbopack', async () => {
  10 |     const $ = await next.render$('/')
> 11 |     expect($('p').text()).toBe('foo')
     |                           ^
  12 |   })
  13 | })
  14 |

  at Object.toBe (development/next-config-ts/turbo/index.test.ts:11:27)

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

pnpm test test/integration/404-page-custom-error/test/index.test.js (turbopack)

  • Default 404 Page with custom _error > production mode > should build successfully
  • Default 404 Page with custom _error > production mode > should respond to 404 correctly
  • Default 404 Page with custom _error > production mode > should render error correctly
  • Default 404 Page with custom _error > production mode > should render index page normal
  • Default 404 Page with custom _error > production mode > should set pages404 in routes-manifest correctly
  • Default 404 Page with custom _error > production mode > should have output 404.html
Expand output

● Default 404 Page with custom _error › production mode › should build successfully

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

Expected: 0
Received: 1

  63 |         })
  64 |
> 65 |         expect(code).toBe(0)
     |                      ^
  66 |
  67 |         appPort = await findPort()
  68 |

  at Object.toBe (integration/404-page-custom-error/test/index.test.js:65:22)

● Default 404 Page with custom _error › production mode › should respond to 404 correctly

TypeError: Invalid URL

  179 | ): Promise<Response> {
  180 |   const url = query ? withQuery(pathname, query) : pathname
> 181 |   return fetch(getFullUrl(appPort, url), opts)
      |               ^
  182 | }
  183 |
  184 | export function renderViaHTTP(

  at parseURL (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:181:15)
  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:25:35)

● Default 404 Page with custom _error › production mode › should render error correctly

TypeError: Invalid URL

  179 | ): Promise<Response> {
  180 |   const url = query ? withQuery(pathname, query) : pathname
> 181 |   return fetch(getFullUrl(appPort, url), opts)
      |               ^
  182 | }
  183 |
  184 | export function renderViaHTTP(

  at parseURL (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:181:15)
  at fetchViaHTTP (lib/next-test-utils.ts:190:10)
  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:31:37)

● Default 404 Page with custom _error › production mode › should render index page normal

TypeError: Invalid URL

  179 | ): Promise<Response> {
  180 |   const url = query ? withQuery(pathname, query) : pathname
> 181 |   return fetch(getFullUrl(appPort, url), opts)
      |               ^
  182 | }
  183 |
  184 | export function renderViaHTTP(

  at parseURL (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:181:15)
  at fetchViaHTTP (lib/next-test-utils.ts:190:10)
  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:36:37)

● Default 404 Page with custom _error › production mode › should set pages404 in routes-manifest correctly

ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/404-page-custom-error/.next/routes-manifest.json'

● Default 404 Page with custom _error › production mode › should have output 404.html

No file for page /404

  1225 |   const pageFile = pagesManifest[page]
  1226 |   if (!pageFile) {
> 1227 |     throw new Error(`No file for page ${page}`)
       |           ^
  1228 |   }
  1229 |
  1230 |   return pageFile

  at getPageFileFromPagesManifest (lib/next-test-utils.ts:1227:11)
  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:47:48)

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

pnpm test test/integration/fetch-polyfill/test/index.test.js (turbopack)

  • Fetch polyfill > production mode > includes polyfilled fetch when using getStaticProps
  • Fetch polyfill > production mode > includes polyfilled fetch when using getServerSideProps
  • Fetch polyfill > production mode > includes polyfilled fetch when using getInitialProps
  • Fetch polyfill > production mode > includes polyfilled fetch when using API routes
  • Fetch polyfill > production mode > includes polyfilled fetch when using getStaticPaths
Expand output

● Fetch polyfill › production mode › includes polyfilled fetch when using getStaticProps

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1476ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/fetch-polyfill/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● Fetch polyfill › production mode › includes polyfilled fetch when using getServerSideProps

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1476ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/fetch-polyfill/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● Fetch polyfill › production mode › includes polyfilled fetch when using getInitialProps

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1476ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/fetch-polyfill/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● Fetch polyfill › production mode › includes polyfilled fetch when using API routes

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1476ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/fetch-polyfill/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● Fetch polyfill › production mode › includes polyfilled fetch when using getStaticPaths

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1476ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/fetch-polyfill/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/fetch-polyfill/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

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

pnpm test test/integration/app-document-import-order/test/index.test.js (turbopack)

  • Root components import order > production mode > root components should be imported in this order _document > _app > page in order to respect side effects
Expand output

● Root components import order › production mode › _app chunks should be attached to de dom before page chunks

command failed with code 1 signal null
 ⚠ Linting is disabled.
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/app-document-import-order/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/app-document-import-order/next.config.js
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/app-document-import-order/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/app-document-import-order/next.config.js
 ⚠ Webpack is configured while Turbopack is not, which may cause problems.
 ⚠ See instructions if you need to configure Turbopack:
  https://nextjs.org/docs/app/api-reference/next-config-js/turbo

 ✓ Compiled successfully in 1309ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__a0d19809._.js

  at loadChunkPath (../../../test/integration/app-document-import-order/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/app-document-import-order/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/app-document-import-order/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● Root components import order › production mode › root components should be imported in this order _document > _app > page in order to respect side effects

command failed with code 1 signal null
 ⚠ Linting is disabled.
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/app-document-import-order/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/app-document-import-order/next.config.js
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/app-document-import-order/next.config.js
   Loading config from /root/actions-runner/_work/next.js/next.js/test/integration/app-document-import-order/next.config.js
 ⚠ Webpack is configured while Turbopack is not, which may cause problems.
 ⚠ See instructions if you need to configure Turbopack:
  https://nextjs.org/docs/app/api-reference/next-config-js/turbo

 ✓ Compiled successfully in 1309ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__a0d19809._.js

  at loadChunkPath (../../../test/integration/app-document-import-order/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/app-document-import-order/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/app-document-import-order/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

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

pnpm test-start-turbo test/e2e/app-dir/asset-prefix-absolute/asset-prefix-absolute.test.ts (turbopack)

  • app-dir absolute assetPrefix > bundles should return 200 on served assetPrefix
Expand output

● app-dir absolute assetPrefix › bundles should return 200 on served assetPrefix

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test test/integration/custom-routes-catchall/test/index.test.js (turbopack)

  • Custom page extension > development mode > should work with normal page
  • Custom page extension > development mode > should work dynamic page
Expand output

● Custom page extension › development mode › should work with normal page

expect(received).toContain(expected) // indexOf

Expected substring: "Blog - CPE"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__ced40a76._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_6fcc74e8._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_0b212506._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__7f96bd72._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_01eab770._.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js\",\"stack\":\"Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js\\n    at loadChunkPath (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)\\n    at Object.loadChunk (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)\\n    at Object.\\u003canonymous\\u003e (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/pages/_document.js:3:9)\\n    at Module._compile (node:internal/modules/cjs/loader:1256:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)\\n    at Module.load (node:internal/modules/cjs/loader:1119:32)\\n    at Module._load (node:internal/modules/cjs/loader:960:12)\\n    at Module.require (node:internal/modules/cjs/loader:1143:19)\\n    at mod.require (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/cjs/helpers:119:18)\\n    at requirePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/require.js:103:84)\\n    at loadComponentsImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/load-components.js:86:38)\\n    at DevServer.findPageComponentsImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:893:77)\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:871:21\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:169:36\\n    at NoopContextManager.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js:25:19)\\n    at ContextAPI.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\\n    at NoopTracer.startActiveSpan (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js:65:31)\\n    at ProxyTracer.startActiveSpan (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js:36:24)\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:151:103\\n    at NoopContextManager.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js:25:19)\\n    at ContextAPI.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\\n    at NextTracerImpl.trace (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:151:28)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:866:41)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:628:28)\\n    at async DevServer.renderErrorToResponseImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:2643:26)\\n    at async pipe.req.req (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:2565:30)\\n    at async DevServer.pipeImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1034:25)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:396:21)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:927:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:371:20\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevServer.handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:368:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:237:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:428:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:452:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:157:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  18 |   it('should work with normal page', async () => {
  19 |     const html = await renderViaHTTP(appPort, '/blog')
> 20 |     expect(html).toContain('Blog - CPE')
     |                  ^
  21 |   })
  22 |
  23 |   it('should work dynamic page', async () => {

  at Object.toContain (integration/custom-page-extension/test/index.test.js:20:18)

● Custom page extension › development mode › should work dynamic page

expect(received).toContain(expected) // indexOf

Expected substring: "Post - nextjs"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__ced40a76._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_6fcc74e8._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_0b212506._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__7f96bd72._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_5771e187._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_01eab770._.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js\",\"stack\":\"Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__963cca16._.js\\n    at loadChunkPath (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)\\n    at Object.loadChunk (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)\\n    at Object.\\u003canonymous\\u003e (/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/server/pages/_document.js:3:9)\\n    at Module._compile (node:internal/modules/cjs/loader:1256:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)\\n    at Module.load (node:internal/modules/cjs/loader:1119:32)\\n    at Module._load (node:internal/modules/cjs/loader:960:12)\\n    at Module.require (node:internal/modules/cjs/loader:1143:19)\\n    at mod.require (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/cjs/helpers:119:18)\\n    at requirePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/require.js:103:84)\\n    at loadComponentsImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/load-components.js:86:38)\\n    at DevServer.findPageComponentsImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:893:77)\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:871:21\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:169:36\\n    at NoopContextManager.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js:25:19)\\n    at ContextAPI.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\\n    at NoopTracer.startActiveSpan (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js:65:31)\\n    at ProxyTracer.startActiveSpan (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js:36:24)\\n    at /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:151:103\\n    at NoopContextManager.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js:25:19)\\n    at ContextAPI.with (/root/actions-runner/_work/next.js/next.js/node_modules/.pnpm/@[email protected]/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\\n    at NextTracerImpl.trace (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/trace/tracer.js:151:28)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:866:41)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:628:28)\\n    at async DevServer.renderErrorToResponseImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:2643:26)\\n    at async pipe.req.req (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:2565:30)\\n    at async DevServer.pipeImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1034:25)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:396:21)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:927:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:371:20\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevServer.handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:368:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:237:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:428:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:452:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:157:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  23 |   it('should work dynamic page', async () => {
  24 |     const html = await renderViaHTTP(appPort, '/blog/nextjs')
> 25 |     expect(html).toContain('Post - nextjs')
     |                  ^
  26 |   })
  27 | }
  28 |

  at Object.toContain (integration/custom-page-extension/test/index.test.js:25:18)

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

pnpm test-start-turbo test/e2e/app-dir/app-client-cache/client-cache.original.test.ts (turbopack)

  • app dir client cache semantics (30s/5min) > should seed the prefetch cache with the fetched page data
  • app dir client cache semantics (30s/5min) > should renew the initial seeded data after expiration time
  • app dir client cache semantics (30s/5min) > prefetch={false} > should not prefetch the page at all
  • app dir client cache semantics (30s/5min) > prefetch={false} > should re-use the cache only for 30 seconds
  • app dir client cache semantics (30s/5min) > prefetch={true} > should prefetch the full page
  • app dir client cache semantics (30s/5min) > prefetch={true} > should re-use the cache for the full page, only for 5 mins
  • app dir client cache semantics (30s/5min) > prefetch={true} > should prefetch again after 5 mins if the link is visible again
  • app dir client cache semantics (30s/5min) > prefetch={undefined} - default > should prefetch partially a dynamic page
  • app dir client cache semantics (30s/5min) > prefetch={undefined} - default > should re-use the full cache for only 30 seconds
  • app dir client cache semantics (30s/5min) > prefetch={undefined} - default > should renew the 30s cache once the data is revalidated
  • app dir client cache semantics (30s/5min) > prefetch={undefined} - default > should refetch below the fold after 30 seconds
  • app dir client cache semantics (30s/5min) > prefetch={undefined} - default > should refetch the full page after 5 mins
  • app dir client cache semantics (30s/5min) > prefetch={undefined} - default > should respect a loading boundary that returns null
Expand output

● app dir client cache semantics (30s/5min) › prefetch={true} › should prefetch the full page

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={true} › should re-use the cache for the full page, only for 5 mins

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={true} › should prefetch again after 5 mins if the link is visible again

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={false} › should not prefetch the page at all

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={false} › should re-use the cache only for 30 seconds

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={undefined} - default › should prefetch partially a dynamic page

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={undefined} - default › should re-use the full cache for only 30 seconds

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={undefined} - default › should renew the 30s cache once the data is revalidated

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={undefined} - default › should refetch below the fold after 30 seconds

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={undefined} - default › should refetch the full page after 5 mins

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › prefetch={undefined} - default › should respect a loading boundary that returns null

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › should seed the prefetch cache with the fetched page data

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir client cache semantics (30s/5min) › should renew the initial seeded data after expiration time

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test test/integration/bigint/test/index.test.js (turbopack)

  • bigint API route support > production mode > should return 200
  • bigint API route support > production mode > should return the BigInt result text
Expand output

● bigint API route support › production mode › should return 200

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1716ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/bigint/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/bigint/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/bigint/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

● bigint API route support › production mode › should return the BigInt result text

command failed with code 1 signal null
 ⚠ Linting is disabled.
   No config file found
   No config file found
   ▲ Next.js 15.3.1-canary.7 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...
   No config file found
   No config file found
 ✓ Compiled successfully in 1716ms
   Collecting page data ...
unhandledRejection Error: Failed to load chunk server/chunks/ssr/[root-of-the-server]__9a62be3b._.js

  at loadChunkPath (../../../test/integration/bigint/.next/server/chunks/ssr/[turbopack]_runtime.js:311:15)
  at Object.loadChunk (../../../test/integration/bigint/.next/server/chunks/ssr/[turbopack]_runtime.js:287:16)
  at Object.<anonymous> (../../../test/integration/bigint/.next/server/pages/_document.js:3:9)
  at mod.require (../dist/server/require-hook.js:65:28) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:314:11)

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

@ijjk
Copy link
Member

ijjk commented Apr 8, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
buildDuration 17.9s 15.1s N/A
buildDurationCached 14.2s 12s N/A
nodeModulesSize 427 MB 427 MB N/A
nextStartRea..uration (ms) 419ms 421ms N/A
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
1733-HASH.js gzip 46 kB 46.5 kB ⚠️ +467 B
194b18f3-HASH.js gzip 53.1 kB 53.1 kB N/A
2192.HASH.js gzip 169 B 169 B
4719-HASH.js gzip 5.47 kB 5.44 kB N/A
framework-HASH.js gzip 57.4 kB 57.4 kB
main-app-HASH.js gzip 248 B 250 B N/A
main-HASH.js gzip 33.4 kB 33.5 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 104 kB 104 kB ⚠️ +467 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 192 B 192 B
amp-HASH.js gzip 510 B 510 B
css-HASH.js gzip 344 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.83 kB N/A
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 364 B N/A
hooks-HASH.js gzip 392 B 391 B N/A
image-HASH.js gzip 4.69 kB 4.67 kB N/A
index-HASH.js gzip 267 B 267 B
link-HASH.js gzip 2.53 kB 2.53 kB N/A
routerDirect..HASH.js gzip 328 B 325 B N/A
script-HASH.js gzip 396 B 396 B
withRouter-HASH.js gzip 325 B 325 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 2.25 kB 2.25 kB
Client Build Manifests
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
_buildManifest.js gzip 750 B 752 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
index.html gzip 521 B 525 B N/A
link.html gzip 534 B 540 B N/A
withRouter.html gzip 517 B 519 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
edge-ssr.js gzip 136 kB 136 kB ⚠️ +193 B
page.js gzip 216 kB 211 kB N/A
Overall change 136 kB 136 kB ⚠️ +193 B
Middleware size Overall increase ⚠️
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
middleware-b..fest.js gzip 675 B 674 B N/A
middleware-r..fest.js gzip 155 B 157 B N/A
middleware.js gzip 32.3 kB 32.5 kB ⚠️ +131 B
edge-runtime..pack.js gzip 844 B 844 B
Overall change 33.2 kB 33.3 kB ⚠️ +131 B
Next Runtimes
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
app-page-exp...dev.js gzip 313 kB 313 kB
app-page-exp..prod.js gzip 144 kB 144 kB
app-page-tur...dev.js gzip 313 kB 313 kB
app-page-tur..prod.js gzip 144 kB 144 kB
app-page-tur...dev.js gzip 305 kB 305 kB
app-page-tur..prod.js gzip 140 kB 140 kB
app-page.run...dev.js gzip 305 kB 305 kB
app-page.run..prod.js gzip 140 kB 140 kB
app-route-ex...dev.js gzip 40.7 kB 40.7 kB
app-route-ex..prod.js gzip 26.3 kB 26.3 kB
app-route-tu...dev.js gzip 40.7 kB 40.7 kB
app-route-tu..prod.js gzip 26.3 kB 26.3 kB
app-route-tu...dev.js gzip 40 kB 40 kB
app-route-tu..prod.js gzip 26 kB 26 kB
app-route.ru...dev.js gzip 40 kB 40 kB
app-route.ru..prod.js gzip 26 kB 26 kB
dist_client_...dev.js gzip 356 B 356 B
dist_client_...dev.js gzip 359 B 359 B
dist_client_...dev.js gzip 351 B 351 B
dist_client_...dev.js gzip 349 B 349 B
pages-api-tu...dev.js gzip 11.9 kB 11.9 kB
pages-api-tu..prod.js gzip 9.76 kB 9.76 kB
pages-api.ru...dev.js gzip 11.9 kB 11.9 kB
pages-api.ru..prod.js gzip 9.75 kB 9.75 kB
pages-turbo....dev.js gzip 31.4 kB 31.4 kB
pages-turbo...prod.js gzip 21.9 kB 21.9 kB
pages.runtim...dev.js gzip 31.6 kB 31.6 kB
pages.runtim..prod.js gzip 22 kB 22 kB
server.runti..prod.js gzip 62 kB 62 kB
Overall change 2.28 MB 2.28 MB
build cache
vercel/next.js canary vercel/next.js kdy1/eager-drop Change
0.pack gzip 2.19 MB 2.18 MB N/A
index.pack gzip 77.6 kB 77.2 kB N/A
Overall change 0 B 0 B
Diff details
Diff for page.js

Diff too large to display

Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js

Diff too large to display

Diff for css-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9813],
   {
-    /***/ 1586: /***/ (
+    /***/ 2628: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/css",
         function () {
-          return __webpack_require__(4362);
+          return __webpack_require__(8707);
         },
       ]);
       if (false) {
@@ -18,14 +18,7 @@
       /***/
     },
 
-    /***/ 4350: /***/ (module) => {
-      // extracted by mini-css-extract-plugin
-      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
-
-      /***/
-    },
-
-    /***/ 4362: /***/ (
+    /***/ 8707: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -39,7 +32,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(5640);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4350);
+        __webpack_require__(9080);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -58,13 +51,20 @@
 
       /***/
     },
+
+    /***/ 9080: /***/ (module) => {
+      // extracted by mini-css-extract-plugin
+      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1586)
+      __webpack_exec__(2628)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,17 +1,117 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 283: /***/ (
+    /***/ 2001: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+        /* harmony export */
+      });
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(5640);
+      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(9553);
+      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_dynamic__WEBPACK_IMPORTED_MODULE_1__
+        );
+
+      const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
+        () =>
+          __webpack_require__
+            .e(/* import() */ 8042)
+            .then(__webpack_require__.bind(__webpack_require__, 8042))
+            .then((mod) => mod.Hello),
+        {
+          loadableGenerated: {
+            webpack: () => [/*require.resolve*/ 8042],
+          },
+        }
+      );
+      const Page = () =>
+        /*#__PURE__*/ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(
+          react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,
+          {
+            children: [
+              /*#__PURE__*/ (0,
+              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
+                children: "testing next/dynamic size",
+              }),
+              /*#__PURE__*/ (0,
+              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+                DynamicHello,
+                {}
+              ),
+            ],
+          }
+        );
+      var __N_SSP = true;
+      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = Page;
+
+      /***/
+    },
+
+    /***/ 2976: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/dynamic",
+        function () {
+          return __webpack_require__(2001);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 7807: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      "use strict";
+      /* __next_internal_client_entry_do_not_use__  cjs */
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "LoadableContext", {
+        enumerable: true,
+        get: function () {
+          return LoadableContext;
+        },
+      });
+      const _interop_require_default = __webpack_require__(1532);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(148)
+      );
+      const LoadableContext = _react.default.createContext(null);
+      if (false) {
+      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+
+      /***/
+    },
+
+    /***/ 9553: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(6990);
+      module.exports = __webpack_require__(9986);
 
       /***/
     },
 
-    /***/ 505: /***/ (
+    /***/ 9829: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -53,7 +153,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(148)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(6179);
+      const _loadablecontextsharedruntime = __webpack_require__(7807);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -288,90 +388,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 5703: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
-        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
-        /* harmony export */
-      });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(5640);
-      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(283);
-      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_dynamic__WEBPACK_IMPORTED_MODULE_1__
-        );
-
-      const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
-        () =>
-          __webpack_require__
-            .e(/* import() */ 2192)
-            .then(__webpack_require__.bind(__webpack_require__, 2192))
-            .then((mod) => mod.Hello),
-        {
-          loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 2192],
-          },
-        }
-      );
-      const Page = () =>
-        /*#__PURE__*/ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(
-          react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,
-          {
-            children: [
-              /*#__PURE__*/ (0,
-              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
-                children: "testing next/dynamic size",
-              }),
-              /*#__PURE__*/ (0,
-              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
-                DynamicHello,
-                {}
-              ),
-            ],
-          }
-        );
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = Page;
-
-      /***/
-    },
-
-    /***/ 6179: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      "use strict";
-      /* __next_internal_client_entry_do_not_use__  cjs */
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "LoadableContext", {
-        enumerable: true,
-        get: function () {
-          return LoadableContext;
-        },
-      });
-      const _interop_require_default = __webpack_require__(1532);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(148)
-      );
-      const LoadableContext = _react.default.createContext(null);
-      if (false) {
-      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
-
-      /***/
-    },
-
-    /***/ 6990: /***/ (module, exports, __webpack_require__) => {
+    /***/ 9986: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -404,7 +421,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         __webpack_require__(148)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(505)
+        __webpack_require__(9829)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -504,30 +521,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
 
       /***/
     },
-
-    /***/ 9254: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/dynamic",
-        function () {
-          return __webpack_require__(5703);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9254)
+      __webpack_exec__(2976)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9804],
   {
-    /***/ 1664: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function () {
-          return __webpack_require__(6130);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 6130: /***/ (
+    /***/ 4756: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -76,13 +59,30 @@
 
       /***/
     },
+
+    /***/ 5426: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/hooks",
+        function () {
+          return __webpack_require__(4756);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1664)
+      __webpack_exec__(5426)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2983],
   {
-    /***/ 2198: /***/ (
+    /***/ 264: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function () {
-          return __webpack_require__(3444);
+          return __webpack_require__(3594);
         },
       ]);
       if (false) {
@@ -18,7 +18,190 @@
       /***/
     },
 
-    /***/ 2514: /***/ (
+    /***/ 1206: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "default", {
+        enumerable: true,
+        get: function () {
+          return _default;
+        },
+      });
+      const DEFAULT_Q = 75;
+      function defaultLoader(param) {
+        let { config, src, width, quality } = param;
+        var _config_qualities;
+        if (false) {
+        }
+        const q =
+          quality ||
+          ((_config_qualities = config.qualities) == null
+            ? void 0
+            : _config_qualities.reduce((prev, cur) =>
+                Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q)
+                  ? cur
+                  : prev
+              )) ||
+          DEFAULT_Q;
+        return (
+          config.path +
+          "?url=" +
+          encodeURIComponent(src) +
+          "&w=" +
+          width +
+          "&q=" +
+          q +
+          (src.startsWith("/_next/static/media/") && false ? 0 : "")
+        );
+      }
+      // We use this to determine if the import is the default loader
+      // or a custom loader defined by the user in next.config.js
+      defaultLoader.__next_img_default = true;
+      const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
+
+      /***/
+    },
+
+    /***/ 1765: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "useMergedRef", {
+        enumerable: true,
+        get: function () {
+          return useMergedRef;
+        },
+      });
+      const _react = __webpack_require__(148);
+      function useMergedRef(refA, refB) {
+        const cleanupA = (0, _react.useRef)(null);
+        const cleanupB = (0, _react.useRef)(null);
+        // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
+        // (this happens often if the user doesn't pass a ref to Link/Form/Image)
+        // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),
+        // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
+        // (because it hasn't been updated for React 19)
+        // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
+        // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
+        return (0, _react.useCallback)(
+          (current) => {
+            if (current === null) {
+              const cleanupFnA = cleanupA.current;
+              if (cleanupFnA) {
+                cleanupA.current = null;
+                cleanupFnA();
+              }
+              const cleanupFnB = cleanupB.current;
+              if (cleanupFnB) {
+                cleanupB.current = null;
+                cleanupFnB();
+              }
+            } else {
+              if (refA) {
+                cleanupA.current = applyRef(refA, current);
+              }
+              if (refB) {
+                cleanupB.current = applyRef(refB, current);
+              }
+            }
+          },
+          [refA, refB]
+        );
+      }
+      function applyRef(refA, current) {
+        if (typeof refA === "function") {
+          const cleanup = refA(current);
+          if (typeof cleanup === "function") {
+            return cleanup;
+          } else {
+            return () => refA(null);
+          }
+        } else {
+          refA.current = current;
+          return () => {
+            refA.current = null;
+          };
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=use-merged-ref.js.map
+
+      /***/
+    },
+
+    /***/ 3353: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(5526);
+
+      /***/
+    },
+
+    /***/ 3594: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      // ESM COMPAT FLAG
+      __webpack_require__.r(__webpack_exports__);
+
+      // EXPORTS
+      __webpack_require__.d(__webpack_exports__, {
+        __N_SSP: () => /* binding */ __N_SSP,
+        default: () => /* binding */ pages_image,
+      });
+
+      // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
+      var jsx_runtime = __webpack_require__(5640);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
+      var next_image = __webpack_require__(3353);
+      var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
+      /* harmony default export */ const nextjs = {
+        src: "/_next/static/media/nextjs.cae0b805.png",
+        height: 1347,
+        width: 1626,
+        blurDataURL:
+          "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAMAAAACh/xsAAAAD1BMVEX////x8fH6+vrb29vo6Oh8o70bAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAH0lEQVR4nGNgwARMjIyMjCAGCzMzMwsTRISJCcRABwAEcAAkLCQfgAAAAABJRU5ErkJggg==",
+        blurWidth: 8,
+        blurHeight: 7,
+      }; // ./pages/image.js
+      function ImagePage(props) {
+        return /*#__PURE__*/ (0, jsx_runtime.jsxs)(jsx_runtime.Fragment, {
+          children: [
+            /*#__PURE__*/ (0, jsx_runtime.jsx)("h1", {
+              children: "next/image example",
+            }),
+            /*#__PURE__*/ (0, jsx_runtime.jsx)(image_default(), {
+              src: nextjs,
+              placeholder: "blur",
+            }),
+          ],
+        });
+      }
+      var __N_SSP = true;
+      /* harmony default export */ const pages_image = ImagePage;
+
+      /***/
+    },
+
+    /***/ 3854: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -34,9 +217,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(5127);
-      const _imageblursvg = __webpack_require__(4287);
-      const _imageconfig = __webpack_require__(2795);
+      const _warnonce = __webpack_require__(3603);
+      const _imageblursvg = __webpack_require__(7835);
+      const _imageconfig = __webpack_require__(6799);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -463,55 +646,69 @@
       /***/
     },
 
-    /***/ 3444: /***/ (
+    /***/ 5526: /***/ (
       __unused_webpack_module,
-      __webpack_exports__,
+      exports,
       __webpack_require__
     ) => {
       "use strict";
-      // ESM COMPAT FLAG
-      __webpack_require__.r(__webpack_exports__);
 
-      // EXPORTS
-      __webpack_require__.d(__webpack_exports__, {
-        __N_SSP: () => /* binding */ __N_SSP,
-        default: () => /* binding */ pages_image,
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
       });
-
-      // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
-      var jsx_runtime = __webpack_require__(5640);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
-      var next_image = __webpack_require__(6359);
-      var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
-      /* harmony default export */ const nextjs = {
-        src: "/_next/static/media/nextjs.cae0b805.png",
-        height: 1347,
-        width: 1626,
-        blurDataURL:
-          "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAMAAAACh/xsAAAAD1BMVEX////x8fH6+vrb29vo6Oh8o70bAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAH0lEQVR4nGNgwARMjIyMjCAGCzMzMwsTRISJCcRABwAEcAAkLCQfgAAAAABJRU5ErkJggg==",
-        blurWidth: 8,
-        blurHeight: 7,
-      }; // ./pages/image.js
-      function ImagePage(props) {
-        return /*#__PURE__*/ (0, jsx_runtime.jsxs)(jsx_runtime.Fragment, {
-          children: [
-            /*#__PURE__*/ (0, jsx_runtime.jsx)("h1", {
-              children: "next/image example",
-            }),
-            /*#__PURE__*/ (0, jsx_runtime.jsx)(image_default(), {
-              src: nextjs,
-              placeholder: "blur",
-            }),
-          ],
+      0 && 0;
+      function _export(target, all) {
+        for (var name in all)
+          Object.defineProperty(target, name, {
+            enumerable: true,
+            get: all[name],
+          });
+      }
+      _export(exports, {
+        default: function () {
+          return _default;
+        },
+        getImageProps: function () {
+          return getImageProps;
+        },
+      });
+      const _interop_require_default = __webpack_require__(1532);
+      const _getimgprops = __webpack_require__(3854);
+      const _imagecomponent = __webpack_require__(8350);
+      const _imageloader = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(1206)
+      );
+      function getImageProps(imgProps) {
+        const { props } = (0, _getimgprops.getImgProps)(imgProps, {
+          defaultLoader: _imageloader.default,
+          // This is replaced by webpack define plugin
+          imgConf: {
+            deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+            imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+            path: "/_next/image",
+            loader: "default",
+            dangerouslyAllowSVG: false,
+            unoptimized: false,
+          },
         });
+        // Normally we don't care about undefined props because we pass to JSX,
+        // but this exported function could be used by the end user for anything
+        // so we delete undefined props to clean it up a little.
+        for (const [key, value] of Object.entries(props)) {
+          if (value === undefined) {
+            delete props[key];
+          }
+        }
+        return {
+          props,
+        };
       }
-      var __N_SSP = true;
-      /* harmony default export */ const pages_image = ImagePage;
+      const _default = _imagecomponent.Image; //# sourceMappingURL=image-external.js.map
 
       /***/
     },
 
-    /***/ 4287: /***/ (__unused_webpack_module, exports) => {
+    /***/ 7835: /***/ (__unused_webpack_module, exports) => {
       "use strict";
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -566,85 +763,7 @@
       /***/
     },
 
-    /***/ 4985: /***/ (module, exports, __webpack_require__) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "useMergedRef", {
-        enumerable: true,
-        get: function () {
-          return useMergedRef;
-        },
-      });
-      const _react = __webpack_require__(148);
-      function useMergedRef(refA, refB) {
-        const cleanupA = (0, _react.useRef)(null);
-        const cleanupB = (0, _react.useRef)(null);
-        // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
-        // (this happens often if the user doesn't pass a ref to Link/Form/Image)
-        // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),
-        // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
-        // (because it hasn't been updated for React 19)
-        // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
-        // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
-        return (0, _react.useCallback)(
-          (current) => {
-            if (current === null) {
-              const cleanupFnA = cleanupA.current;
-              if (cleanupFnA) {
-                cleanupA.current = null;
-                cleanupFnA();
-              }
-              const cleanupFnB = cleanupB.current;
-              if (cleanupFnB) {
-                cleanupB.current = null;
-                cleanupFnB();
-              }
-            } else {
-              if (refA) {
-                cleanupA.current = applyRef(refA, current);
-              }
-              if (refB) {
-                cleanupB.current = applyRef(refB, current);
-              }
-            }
-          },
-          [refA, refB]
-        );
-      }
-      function applyRef(refA, current) {
-        if (typeof refA === "function") {
-          const cleanup = refA(current);
-          if (typeof cleanup === "function") {
-            return cleanup;
-          } else {
-            return () => refA(null);
-          }
-        } else {
-          refA.current = current;
-          return () => {
-            refA.current = null;
-          };
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=use-merged-ref.js.map
-
-      /***/
-    },
-
-    /***/ 5898: /***/ (module, exports, __webpack_require__) => {
+    /***/ 8350: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -666,17 +785,17 @@
         __webpack_require__(7897)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(5207)
+        __webpack_require__(8843)
       );
-      const _getimgprops = __webpack_require__(2514);
-      const _imageconfig = __webpack_require__(2795);
-      const _imageconfigcontextsharedruntime = __webpack_require__(2349);
-      const _warnonce = __webpack_require__(5127);
-      const _routercontextsharedruntime = __webpack_require__(3556);
+      const _getimgprops = __webpack_require__(3854);
+      const _imageconfig = __webpack_require__(6799);
+      const _imageconfigcontextsharedruntime = __webpack_require__(3905);
+      const _warnonce = __webpack_require__(3603);
+      const _routercontextsharedruntime = __webpack_require__(6712);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(5970)
+        __webpack_require__(1206)
       );
-      const _usemergedref = __webpack_require__(4985);
+      const _usemergedref = __webpack_require__(1765);
       // This is replaced by webpack define plugin
       const configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -1002,132 +1121,13 @@
 
       /***/
     },
-
-    /***/ 5970: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "default", {
-        enumerable: true,
-        get: function () {
-          return _default;
-        },
-      });
-      const DEFAULT_Q = 75;
-      function defaultLoader(param) {
-        let { config, src, width, quality } = param;
-        var _config_qualities;
-        if (false) {
-        }
-        const q =
-          quality ||
-          ((_config_qualities = config.qualities) == null
-            ? void 0
-            : _config_qualities.reduce((prev, cur) =>
-                Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q)
-                  ? cur
-                  : prev
-              )) ||
-          DEFAULT_Q;
-        return (
-          config.path +
-          "?url=" +
-          encodeURIComponent(src) +
-          "&w=" +
-          width +
-          "&q=" +
-          q +
-          (src.startsWith("/_next/static/media/") && false ? 0 : "")
-        );
-      }
-      // We use this to determine if the import is the default loader
-      // or a custom loader defined by the user in next.config.js
-      defaultLoader.__next_img_default = true;
-      const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
-
-      /***/
-    },
-
-    /***/ 6359: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(8986);
-
-      /***/
-    },
-
-    /***/ 8986: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      0 && 0;
-      function _export(target, all) {
-        for (var name in all)
-          Object.defineProperty(target, name, {
-            enumerable: true,
-            get: all[name],
-          });
-      }
-      _export(exports, {
-        default: function () {
-          return _default;
-        },
-        getImageProps: function () {
-          return getImageProps;
-        },
-      });
-      const _interop_require_default = __webpack_require__(1532);
-      const _getimgprops = __webpack_require__(2514);
-      const _imagecomponent = __webpack_require__(5898);
-      const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(5970)
-      );
-      function getImageProps(imgProps) {
-        const { props } = (0, _getimgprops.getImgProps)(imgProps, {
-          defaultLoader: _imageloader.default,
-          // This is replaced by webpack define plugin
-          imgConf: {
-            deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-            imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
-            path: "/_next/image",
-            loader: "default",
-            dangerouslyAllowSVG: false,
-            unoptimized: false,
-          },
-        });
-        // Normally we don't care about undefined props because we pass to JSX,
-        // but this exported function could be used by the end user for anything
-        // so we delete undefined props to clean it up a little.
-        for (const [key, value] of Object.entries(props)) {
-          if (value === undefined) {
-            delete props[key];
-          }
-        }
-        return {
-          props,
-        };
-      }
-      const _default = _imagecomponent.Image; //# sourceMappingURL=image-external.js.map
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(2198)
+      __webpack_exec__(264)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for index-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3332],
   {
-    /***/ 9418: /***/ (
+    /***/ 8230: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/",
+        function () {
+          return __webpack_require__(8696);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 8696: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -19,30 +36,13 @@
 
       /***/
     },
-
-    /***/ 9532: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/",
-        function () {
-          return __webpack_require__(9418);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9532)
+      __webpack_exec__(8230)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,125 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 1854: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
-        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
-        /* harmony export */
-      });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(5640);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(8770);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_link__WEBPACK_IMPORTED_MODULE_1__
-        );
-
-      function aLink(props) {
-        return /*#__PURE__*/ (0,
-        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
-          children: [
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
-              children: "A Link page!",
-            }),
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
-              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
-              {
-                href: "/",
-                children: "Go to /",
-              }
-            ),
-          ],
-        });
-      }
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
-
-      /***/
-    },
-
-    /***/ 3199: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "errorOnce", {
-        enumerable: true,
-        get: function () {
-          return errorOnce;
-        },
-      });
-      let errorOnce = (_) => {};
-      if (false) {
-      } //# sourceMappingURL=error-once.js.map
-
-      /***/
-    },
-
-    /***/ 3568: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function () {
-          return __webpack_require__(1854);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 3857: /***/ (module, exports, __webpack_require__) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "getDomainLocale", {
-        enumerable: true,
-        get: function () {
-          return getDomainLocale;
-        },
-      });
-      const _normalizetrailingslash = __webpack_require__(4869);
-      const basePath =
-        /* unused pure expression or super */ null && (false || "");
-      function getDomainLocale(path, locale, locales, domainLocales) {
-        if (false) {
-        } else {
-          return false;
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=get-domain-locale.js.map
-
-      /***/
-    },
-
-    /***/ 3947: /***/ (module, exports, __webpack_require__) => {
+    /***/ 591: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -146,17 +28,17 @@
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(148)
       );
-      const _resolvehref = __webpack_require__(3161);
-      const _islocalurl = __webpack_require__(2309);
-      const _formaturl = __webpack_require__(3768);
-      const _utils = __webpack_require__(5554);
-      const _addlocale = __webpack_require__(7591);
-      const _routercontextsharedruntime = __webpack_require__(3556);
-      const _useintersection = __webpack_require__(5624);
-      const _getdomainlocale = __webpack_require__(3857);
-      const _addbasepath = __webpack_require__(4356);
-      const _usemergedref = __webpack_require__(4985);
-      const _erroronce = __webpack_require__(3199);
+      const _resolvehref = __webpack_require__(5837);
+      const _islocalurl = __webpack_require__(5953);
+      const _formaturl = __webpack_require__(6212);
+      const _utils = __webpack_require__(6950);
+      const _addlocale = __webpack_require__(6467);
+      const _routercontextsharedruntime = __webpack_require__(6712);
+      const _useintersection = __webpack_require__(9692);
+      const _getdomainlocale = __webpack_require__(6850);
+      const _addbasepath = __webpack_require__(4928);
+      const _usemergedref = __webpack_require__(1765);
+      const _erroronce = __webpack_require__(8659);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -545,7 +427,17 @@
       /***/
     },
 
-    /***/ 4985: /***/ (module, exports, __webpack_require__) => {
+    /***/ 1148: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(591);
+
+      /***/
+    },
+
+    /***/ 1765: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -623,7 +515,125 @@
       /***/
     },
 
-    /***/ 5624: /***/ (module, exports, __webpack_require__) => {
+    /***/ 5436: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+        /* harmony export */
+      });
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(5640);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(1148);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_link__WEBPACK_IMPORTED_MODULE_1__
+        );
+
+      function aLink(props) {
+        return /*#__PURE__*/ (0,
+        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
+          children: [
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
+              children: "A Link page!",
+            }),
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
+              {
+                href: "/",
+                children: "Go to /",
+              }
+            ),
+          ],
+        });
+      }
+      var __N_SSP = true;
+      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+
+      /***/
+    },
+
+    /***/ 6850: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "getDomainLocale", {
+        enumerable: true,
+        get: function () {
+          return getDomainLocale;
+        },
+      });
+      const _normalizetrailingslash = __webpack_require__(6457);
+      const basePath =
+        /* unused pure expression or super */ null && (false || "");
+      function getDomainLocale(path, locale, locales, domainLocales) {
+        if (false) {
+        } else {
+          return false;
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=get-domain-locale.js.map
+
+      /***/
+    },
+
+    /***/ 8659: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "errorOnce", {
+        enumerable: true,
+        get: function () {
+          return errorOnce;
+        },
+      });
+      let errorOnce = (_) => {};
+      if (false) {
+      } //# sourceMappingURL=error-once.js.map
+
+      /***/
+    },
+
+    /***/ 9666: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/link",
+        function () {
+          return __webpack_require__(5436);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 9692: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -636,7 +646,7 @@
         },
       });
       const _react = __webpack_require__(148);
-      const _requestidlecallback = __webpack_require__(3543);
+      const _requestidlecallback = __webpack_require__(315);
       const hasIntersectionObserver =
         typeof IntersectionObserver === "function";
       const observers = new Map();
@@ -748,23 +758,13 @@
 
       /***/
     },
-
-    /***/ 8770: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(3947);
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(3568)
+      __webpack_exec__(9666)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [188],
   {
-    /***/ 3618: /***/ (
+    /***/ 76: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -16,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(5640);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4631);
+        __webpack_require__(9413);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -36,17 +36,7 @@
       /***/
     },
 
-    /***/ 4631: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(7086);
-
-      /***/
-    },
-
-    /***/ 7824: /***/ (
+    /***/ 1810: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -54,7 +44,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/routerDirect",
         function () {
-          return __webpack_require__(3618);
+          return __webpack_require__(76);
         },
       ]);
       if (false) {
@@ -62,13 +52,23 @@
 
       /***/
     },
+
+    /***/ 9413: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(5282);
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(7824)
+      __webpack_exec__(1810)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,24 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 1984: /***/ (
-      __unused_webpack_module,
+    /***/ 2227: /***/ (
+      module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/script",
-        function () {
-          return __webpack_require__(5769);
-        },
-      ]);
-      if (false) {
-      }
+      module.exports = __webpack_require__(5984);
 
       /***/
     },
 
-    /***/ 5769: /***/ (
+    /***/ 3043: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -33,7 +26,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(5640);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(8293);
+        __webpack_require__(2227);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -66,12 +59,19 @@
       /***/
     },
 
-    /***/ 8293: /***/ (
-      module,
+    /***/ 3642: /***/ (
+      __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(900);
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/script",
+        function () {
+          return __webpack_require__(3043);
+        },
+      ]);
+      if (false) {
+      }
 
       /***/
     },
@@ -81,7 +81,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1984)
+      __webpack_exec__(3642)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,34 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3263],
   {
-    /***/ 4631: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(7086);
-
-      /***/
-    },
-
-    /***/ 9216: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/withRouter",
-        function () {
-          return __webpack_require__(9803);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 9803: /***/ (
+    /***/ 1089: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(5640);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4631);
+        __webpack_require__(9413);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -61,13 +34,40 @@
 
       /***/
     },
+
+    /***/ 3962: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/withRouter",
+        function () {
+          return __webpack_require__(1089);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 9413: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(5282);
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9216)
+      __webpack_exec__(3962)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 1733-HASH.js

Diff too large to display

Diff for 4719-HASH.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Diff for main-app-HASH.js
@@ -1,61 +1,61 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4977],
   {
-    /***/ 3505: /***/ () => {
-      /* (ignored) */
-      /***/
-    },
-
-    /***/ 5053: /***/ (
+    /***/ 679: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 8790, 23)
+        __webpack_require__.t.bind(__webpack_require__, 5356, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7382, 23)
+        __webpack_require__.t.bind(__webpack_require__, 4304, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 9442, 23)
+        __webpack_require__.t.bind(__webpack_require__, 3152, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 94, 23)
+        __webpack_require__.t.bind(__webpack_require__, 9464, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 2439, 23)
+        __webpack_require__.t.bind(__webpack_require__, 7601, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 5083, 23)
+        __webpack_require__.t.bind(__webpack_require__, 2553, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 8103, 23)
+        __webpack_require__.t.bind(__webpack_require__, 1925, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 5625, 23)
+        __webpack_require__.t.bind(__webpack_require__, 959, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 4247, 23)
+        __webpack_require__.t.bind(__webpack_require__, 9389, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 5602, 23)
+        __webpack_require__.t.bind(__webpack_require__, 8628, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 227, 23)
+        __webpack_require__.t.bind(__webpack_require__, 3077, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6734, 23)
+        __webpack_require__.t.bind(__webpack_require__, 7812, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 4120, 23)
+        __webpack_require__.t.bind(__webpack_require__, 5774, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 6104)
+        __webpack_require__.bind(__webpack_require__, 750)
       );
 
       /***/
     },
+
+    /***/ 3579: /***/ () => {
+      /* (ignored) */
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
@@ -63,8 +63,8 @@
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(
       0,
-      [1305, 1733],
-      () => (__webpack_exec__(9679), __webpack_exec__(5053))
+      [9910, 965],
+      () => (__webpack_exec__(1389), __webpack_exec__(679))
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Commit: b186a07

@kdy1 kdy1 force-pushed the kdy1/eager-drop branch from 5b4cac0 to 95ba485 Compare April 14, 2025 12:33
@ijjk ijjk added the Turbopack Related to Turbopack with Next.js. label Apr 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants