Skip to content

Conversation

@sokra
Copy link
Member

@sokra sokra commented Nov 13, 2025

Split AggregatedDirtyContainer

Split AggregatedDirtyContainerCount

improve test case to test session dependent and restoring

Copy link
Member Author

sokra commented Nov 13, 2025

@sokra sokra added the CI Bypass Graphite Optimization Ignore Graphite CI optimizations, run the full CI suite. https://graphite.dev/docs/stacking-and-ci label Nov 13, 2025 — with Graphite App
@sokra sokra changed the title Split AggregatedDirtyContainer Turbopack: Split AggregatedDirtyContainer and AggregatedDirtyContainerCount Nov 13, 2025
@ijjk
Copy link
Member

ijjk commented Nov 13, 2025

Failing test suites

Commit: 089131d | About building and testing Next.js

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

  • Custom page extension > development mode > should work with normal page (DD)
  • Custom page extension > development mode > should work dynamic page (DD)
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/packages_next_dist_compiled_34ace371._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_14870492._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_client_874eadb1._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_0ddb1751._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_app_809261c2.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__aaf4a434._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_c220116a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_custom-page-extension_pages__app_51d5b466._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_0a642348._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_f764dc06._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_error_5ee5793a.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__123b0a7d._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_custom-page-extension_pages__error_e9d94803._.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\":\"ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/dev/server/pages/_error/client-build-manifest.json'\",\"stack\":\"Error: ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/dev/server/pages/_error/client-build-manifest.json'\\n    at Object.readFileUtf8 (node:internal/fs/sync:25:18)\\n    at readFileSync (node:fs:441:19)\\n    at readPartialManifestContent (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:45:33)\\n    at TurbopackManifestLoader.loadClientBuildManifest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:191:93)\\n    at handlePagesErrorRoute (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/turbopack-utils.js:659:26)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/hot-reloader-turbopack.js:1063:25\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevBundlerService.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/dev-bundler-service.js:20:20)\\n    at async DevServer.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:670:9)\\n    at async DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:681:13)\\n    at async DevServer.renderErrorToResponseImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1704:26)\\n    at async pipe.req.req (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1611:30)\\n    at async DevServer.pipeImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1021:25)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:409:21)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:912:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:386: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:382:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:240:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:436:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:484:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:226: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.ts: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/packages_next_dist_compiled_34ace371._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_14870492._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_client_874eadb1._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_0ddb1751._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_app_809261c2.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__aaf4a434._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_c220116a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_custom-page-extension_pages__app_51d5b466._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_0a642348._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_f764dc06._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_error_5ee5793a.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__123b0a7d._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_custom-page-extension_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_custom-page-extension_pages__error_e9d94803._.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\":\"ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/dev/server/pages/blog/[pid]/client-build-manifest.json'\",\"stack\":\"Error: ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/custom-page-extension/.next/dev/server/pages/blog/[pid]/client-build-manifest.json'\\n    at Object.readFileUtf8 (node:internal/fs/sync:25:18)\\n    at readFileSync (node:fs:441:19)\\n    at readPartialManifestContent (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:45:33)\\n    at TurbopackManifestLoader.loadClientBuildManifest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:191:93)\\n    at handleRouteType (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/turbopack-utils.js:179:42)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/hot-reloader-turbopack.js:1112:21\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevBundlerService.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/dev-bundler-service.js:20:20)\\n    at async DevServer.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:670:9)\\n    at async Object.ensure (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:173:17)\\n    at async DevRouteMatcherManager.matchAll (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js:90:13)\\n    at async DevRouteMatcherManager.match (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/route-matcher-managers/default-route-matcher-manager.js:163:26)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:340:31)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:912:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:386: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:382:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:240:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:436:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:484:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:226: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.ts:25:18)

pnpm test test/integration/edge-runtime-dynamic-code/test/index.test.ts (turbopack) (job)

  • Page using eval in development mode > does not issue dynamic code evaluation warnings (DD)
Expand output

● Page using eval in development mode › does not issue dynamic code evaluation warnings

expect(received).toMatch(expected)

Expected pattern: />.*?100.*?and.*?100.*?<\//
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/packages_next_dist_compiled_34ace371._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_14870492._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_client_874eadb1._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_0ddb1751._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_app_809261c2.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__1594c3cd._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_c220116a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_edge-runtime-dynamic-code_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_edge-runtime-dynamic-code_pages__app_3c62c223._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_0a642348._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_f764dc06._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_error_5ee5793a.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__29ccc5cf._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_edge-runtime-dynamic-code_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_edge-runtime-dynamic-code_pages__error_42d6b700._.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\":\"ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/edge-runtime-dynamic-code/.next/dev/server/pages/_error/client-build-manifest.json'\",\"stack\":\"Error: ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/edge-runtime-dynamic-code/.next/dev/server/pages/_error/client-build-manifest.json'\\n    at Object.readFileUtf8 (node:internal/fs/sync:25:18)\\n    at readFileSync (node:fs:441:19)\\n    at readPartialManifestContent (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:45:33)\\n    at TurbopackManifestLoader.loadClientBuildManifest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:191:93)\\n    at handlePagesErrorRoute (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/turbopack-utils.js:659:26)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/hot-reloader-turbopack.js:1063:25\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevBundlerService.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/dev-bundler-service.js:20:20)\\n    at async DevServer.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:670:9)\\n    at async DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:681:13)\\n    at async DevServer.renderErrorToResponseImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1704:26)\\n    at async pipe.req.req (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1611:30)\\n    at async DevServer.pipeImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1021:25)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:409:21)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:912:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:386: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:382:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:240:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:436:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:484:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:226:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  45 |   it('does not issue dynamic code evaluation warnings', async () => {
  46 |     const html = await renderViaHTTP(context.appPort, '/')
> 47 |     expect(html).toMatch(/>.*?100.*?and.*?100.*?<\//)
     |                  ^
  48 |     await waitFor(500)
  49 |     expect(output).not.toContain(EVAL_ERROR)
  50 |     expect(output).not.toContain(DYNAMIC_CODE_ERROR)

  at Object.toMatch (integration/edge-runtime-dynamic-code/test/index.test.ts:47:18)

pnpm test test/integration/edge-runtime-response-error/test/index.test.ts (turbopack) (job)

  • Edge runtime code with imports > test error if response is not Response type > Middleware dev test Response (DD)
Expand output

● Edge runtime code with imports › test error if response is not Response type › Middleware dev test Response

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

Expected substring: "Expected an instance of Response to be returned"
Received string:    "⚠ The \"middleware\" file convention is deprecated. Please use \"proxy\" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy
⨯ Error: ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/edge-runtime-response-error/.next/dev/server/pages/_app/build-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/root/actions-runner/_work/next.js/next.js/test/integration/edge-runtime-response-error/.next/dev/server/pages/_app/build-manifest.json'
}
⨯ Error: ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/edge-runtime-response-error/.next/dev/server/pages/_error/client-build-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/root/actions-runner/_work/next.js/next.js/test/integration/edge-runtime-response-error/.next/dev/server/pages/_error/client-build-manifest.json'
}
"

  66 |       context.app = await launchApp(context.appDir, context.appPort, appOption)
  67 |       const res = await fetchViaHTTP(context.appPort, url)
> 68 |       expect(context.logs.stderr).toContain(
     |                                   ^
  69 |         'Expected an instance of Response to be returned'
  70 |       )
  71 |       expect(res.status).toBe(500)

  at Object.toContain (integration/edge-runtime-response-error/test/index.test.ts:68:35)

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

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

● 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.ts:40:18)

pnpm test test/integration/dynamic-require/test/index.test.ts (turbopack) (job)

  • Dynamic require > should not throw error when dynamic require is used (DD)
Expand output

● Dynamic require › should not throw error when dynamic require is used

expect(received).toMatch(expected)

Expected pattern: /If you can see this then we are good/
Received string:  "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><title data-next-head=\"\">500: Internal Server Error</title><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/packages_next_dist_compiled_34ace371._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_14870492._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_client_874eadb1._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_0ddb1751._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_app_809261c2.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__9ecb1d3f._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_c220116a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_dynamic-require_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_dynamic-require_pages__app_374cb2dc._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_0a642348._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_f764dc06._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_error_5ee5793a.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__42b5fe4f._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_dynamic-require_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_dynamic-require_pages__error_43a3a2a1._.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 style=\"font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center\"><div style=\"line-height:48px\"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class=\"next-error-h1\" style=\"display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top\">500</h1><div style=\"display:inline-block\"><h2 style=\"font-size:14px;font-weight:400;line-height:28px\">Internal Server Error<!-- -->.</h2></div></div></div></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  16 |   it('should not throw error when dynamic require is used', async () => {
  17 |     const html = await renderViaHTTP(appPort, '/')
> 18 |     expect(html).toMatch(/If you can see this then we are good/)
     |                  ^
  19 |   })
  20 | })
  21 |

  at Object.toMatch (integration/dynamic-require/test/index.test.ts:18:18)

pnpm test test/integration/edge-runtime-streaming-error/test/index.test.ts (turbopack) (job)

  • production mode > logs the error correctly (DD)
Expand output

● production mode › logs the error correctly

FetchError: request to http://localhost:46679/api/test failed, reason: connect ECONNREFUSED 127.0.0.1:46679

  at ClientRequest.<anonymous> (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1491:11)

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

  • 404 Page Support with _app > development mode > should not show pages/404 GIP error if _app has GIP (DD)
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.ts:85:28)

pnpm test test/integration/client-navigation-a11y/test/index.test.ts (turbopack) (job)

  • Client Navigation accessibility > > There is a title and a h1 tag > has the innerText equal to the value of h1 (DD)
  • Client Navigation accessibility > > There is no title and no h1 tag > has the innerText equal to the value of the pathname (DD)
  • Client Navigation accessibility > > There is no title but a h1 tag > has the innerText equal to the value of h1 (DD)
Expand output

● Client Navigation accessibility › › There is no title but a h1 tag › has the innerText equal to the value of h1

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

Expected: "My heading"
Received: ""

  84 |         const h1Value = await getMainHeadingTitle(browser)
  85 |
> 86 |         expect(routeAnnouncerValue).toBe(h1Value)
     |                                     ^
  87 |         await browser.close()
  88 |       })
  89 |     })

  at Object.toBe (integration/client-navigation-a11y/test/index.test.ts:86:37)

● Client Navigation accessibility › › There is a title and a h1 tag › has the innerText equal to the value of h1

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

Expected: "Another Page's Title"
Received: ""

   97 |         const title = await getDocumentTitle(browser)
   98 |
>  99 |         expect(routeAnnouncerValue).toBe(title)
      |                                     ^
  100 |         await browser.close()
  101 |       })
  102 |     })

  at Object.toBe (integration/client-navigation-a11y/test/index.test.ts:99:37)

● Client Navigation accessibility › › There is no title and no h1 tag › has the innerText equal to the value of the pathname

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

Expected: "/page-without-h1-or-title"
Received: ""

  110 |         const pathname = '/page-without-h1-or-title'
  111 |
> 112 |         expect(routeAnnouncerValue).toBe(pathname)
      |                                     ^
  113 |         await browser.close()
  114 |       })
  115 |     })

  at Object.toBe (integration/client-navigation-a11y/test/index.test.ts:112:37)

pnpm test test/integration/route-load-cancel-css/test/index.test.ts (turbopack) (job)

  • route cancel via CSS > production mode > should cancel slow page loads on re-navigation (DD)
Expand output

● route cancel via CSS › production mode › should cancel slow page loads on re-navigation

command failed with code 1 signal null
▲ Next.js 16.0.2-canary.23 (Turbopack)

   Running TypeScript ...
  Creating an optimized production build ...

> Build error occurred
Error: ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/route-load-cancel-css/.next/server/pages/index/client-build-manifest.json'

  at readPartialManifestContent (../dist/shared/lib/turbopack/manifest-loader.js:45:33)
  at TurbopackManifestLoader.loadClientBuildManifest (../dist/shared/lib/turbopack/manifest-loader.js:191:93)
  at handleRouteType (../dist/build/handle-entrypoints.js:115:38)
  at turbopackBuild (../dist/build/turbopack-build/impl.js:152:70)
  at async Object.workerMain (../dist/build/turbopack-build/impl.js:226:89)
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

pnpm test test/integration/externals-pages-bundle/test/externals.test.ts (turbopack) (job)

  • default > should use externals for unvendored node_modules reachable from the project (DD)
Expand output

● default › should use externals for unvendored node_modules reachable from the project

FetchError: request to http://localhost:39685/ failed, reason: connect ECONNREFUSED 127.0.0.1:39685

  at ClientRequest.<anonymous> (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1491:11)

pnpm test-dev test/e2e/app-dir/next-config-ts-native-ts/dynamic-import-esm/next-config-ts-dynamic-import-esm.test.ts (job)

  • next-config-ts-dynamic-import-esm > should support dynamic import (ESM) (DD)
Expand output

● next-config-ts-dynamic-import-esm › should support dynamic import (ESM)

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

Expected: "foo"
Received: ""

  17 |   it('should support dynamic import (ESM)', async () => {
  18 |     const $ = await next.render$('/')
> 19 |     expect($('p').text()).toBe('foo')
     |                           ^
  20 |   })
  21 | })
  22 |

  at Object.toBe (e2e/app-dir/next-config-ts-native-ts/dynamic-import-esm/next-config-ts-dynamic-import-esm.test.ts:19:27)

pnpm test test/integration/empty-project/test/index.test.ts (turbopack) (job)

  • Empty Project > Should not time out and return 404 (DD)
Expand output

● Empty Project › Should not time out and return 404

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

Expected: 404
Received: 500

  19 |   it('Should not time out and return 404', async () => {
  20 |     const res = await fetch('/')
> 21 |     expect(res.status).toBe(404)
     |                        ^
  22 |   })
  23 |
  24 |   afterAll(async () => {

  at Object.toBe (integration/empty-project/test/index.test.ts:21:24)

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

  • dev-fetch-hmr > should retain module level fetch patching (DD)
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/2bf0f_next_dist_compiled_3ca07d0f._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/2bf0f_next_dist_shared_lib_835df89e._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/2bf0f_next_dist_client_c08155ef._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/2bf0f_next_dist_0d735d27._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/2bf0f_next_app_b585baf4.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_6c02461e._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/76102_react-dom_44795136._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_7136f466._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__45f039c3._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-pages__app_de7c3708._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/2bf0f_next_dist_shared_lib_df58ced4._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/2bf0f_next_dist_11955359._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/2bf0f_next_error_4f2ede90.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_5856dfda._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__092393de._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-pages__error_d19dd197._.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\":\"ENOENT: no such file or directory, open '/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/.next/dev/server/pages/_error/client-build-manifest.json'\",\"stack\":\"Error: ENOENT: no such file or directory, open '/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/.next/dev/server/pages/_error/client-build-manifest.json'\\n    at Object.readFileUtf8 (node:internal/fs/sync:25:18)\\n    at readFileSync (node:fs:441:19)\\n    at readPartialManifestContent (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js:45:33)\\n    at TurbopackManifestLoader.loadClientBuildManifest (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js:191:93)\\n    at handlePagesErrorRoute (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/dev/turbopack-utils.js:659:26)\\n    at async /tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/dev/hot-reloader-turbopack.js:1063:25\\n    at async Span.traceAsyncFn (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/trace/trace.js:157:20)\\n    at async DevBundlerService.ensurePage (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/lib/dev-bundler-service.js:20:20)\\n    at async DevServer.ensurePage (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/dev/next-dev-server.js:670:9)\\n    at async DevServer.findPageComponents (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/dev/next-dev-server.js:681:13)\\n    at async DevServer.renderErrorToResponseImpl (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/base-server.js:1704:26)\\n    at async pipe.req.req (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/base-server.js:1611:30)\\n    at async DevServer.pipeImpl (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/base-server.js:1021:25)\\n    at async /tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/dev/next-dev-server.js:386:20\\n    at async Span.traceAsyncFn (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/trace/trace.js:157:20)\\n    at async DevServer.handleRequest (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/dev/next-dev-server.js:382:24)\\n    at async invokeRender (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/lib/router-server.js:240:21)\\n    at async requestHandlerImpl (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/lib/router-server.js:496:24)\\n    at async Server.requestListener (/tmp/next-install-d630bd38e1cd4e3a2be740810b4cf03c09290855d003d0dd253a7c577bb5ea61/node_modules/.pnpm/file+..+next-repo-f5121ab6a17f5ab4ed335992210991b4f3fb4a55b4fdf41c140eb61f734ef9cd+packages+n_3lxs6zeh7f3kzby72wwgvfj3uy/node_modules/next/dist/server/lib/start-server.js:226: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)

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

  • 404 Page Support SSG > development mode > should respond to 404 correctly (DD)
Expand output

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

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

Expected: 404
Received: 500

  26 |   it('should respond to 404 correctly', async () => {
  27 |     const res = await fetchViaHTTP(appPort, '/404')
> 28 |     expect(res.status).toBe(404)
     |                        ^
  29 |     expect(await res.text()).toContain('custom 404 page')
  30 |   })
  31 |

  at Object.toBe (integration/404-page-ssg/test/index.test.ts:28:24)

pnpm test-dev-turbo test/development/acceptance-app/dynamic-metadata-error.test.ts (turbopack) (job)

  • dynamic metadata error > should error when id is missing in generateImageMetadata (DD)
  • dynamic metadata error > should error when id is missing in generateSitemaps (DD)
Expand output

● dynamic metadata error › should error when id is missing in generateImageMetadata

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

Expected substring: "id property is required for every item returned from generateImageMetadata"
Received string:    "▲ Next.js 16.0.2-canary.23 (Turbopack)
- Local:         http://localhost:33803
- Network:       http://176.9.52.244:33803·
✓ Starting...
Creating turbopack project {
  dir: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b',
  testMode: true
}·
  We detected TypeScript in your project and created a tsconfig.json file for you.
✓ Ready in 351ms
⨯ Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/app/metadata-base/unset/icon/[__metadata_id__]/[__metadata_id__]/route/app-paths-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/app/metadata-base/unset/icon/[__metadata_id__]/[__metadata_id__]/route/app-paths-manifest.json'
}
⨯ Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_app/build-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_app/build-manifest.json'
}
Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/app/metadata-base/unset/icon/[__metadata_id__]/[__metadata_id__]/route/app-paths-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/app/metadata-base/unset/icon/[__metadata_id__]/[__metadata_id__]/route/app-paths-manifest.json'
}
⨯ Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_app/build-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_app/build-manifest.json'
}
Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_document/pages-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_document/pages-manifest.json'
}
"

  41 |
  42 |     await retry(async () => {
> 43 |       expect(next.cliOutput).toContain(
     |                              ^
  44 |         `id property is required for every item returned from generateImageMetadata`
  45 |       )
  46 |     })

  at toContain (development/acceptance-app/dynamic-metadata-error.test.ts:43:30)
  at fn (lib/next-test-utils.ts:797:20)
  at Object.<anonymous> (development/acceptance-app/dynamic-metadata-error.test.ts:42:5)

● dynamic metadata error › should error when id is missing in generateSitemaps

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

Expected substring: "id property is required for every item returned from generateSitemaps"
Received string:    "▲ Next.js 16.0.2-canary.23 (Turbopack)
- Local:         http://localhost:35639
- Network:       http://176.9.52.244:35639·
✓ Starting...
Creating turbopack project {
  dir: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b',
  testMode: true
}·
  We detected TypeScript in your project and created a tsconfig.json file for you.
✓ Ready in 295ms
⨯ Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/app/metadata-base/unset/sitemap/[__metadata_id__]/[__metadata_id__]/route/app-paths-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/app/metadata-base/unset/sitemap/[__metadata_id__]/[__metadata_id__]/route/app-paths-manifest.json'
}
⨯ Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_app/build-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_app/build-manifest.json'
}
Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/app/metadata-base/unset/sitemap/[__metadata_id__]/[__metadata_id__]/route/app-paths-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/app/metadata-base/unset/sitemap/[__metadata_id__]/[__metadata_id__]/route/app-paths-manifest.json'
}
⨯ Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_app/build-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_app/build-manifest.json'
}
Error: ENOENT: no such file or directory, open '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_document/pages-manifest.json'
    at ignore-listed frames {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-d10ab0cb0a5f9dd5119483354e17c5c668c355da3e4e1411d5b7e3525cf4bf2b/.next/dev/server/pages/_document/pages-manifest.json'
}
"

  74 |
  75 |     await retry(async () => {
> 76 |       expect(next.cliOutput).toContain(
     |                              ^
  77 |         `id property is required for every item returned from generateSitemaps`
  78 |       )
  79 |     })

  at toContain (development/acceptance-app/dynamic-metadata-error.test.ts:76:30)
  at fn (lib/next-test-utils.ts:797:20)
  at Object.<anonymous> (development/acceptance-app/dynamic-metadata-error.test.ts:75:5)

pnpm test-dev-turbo test/development/app-dir/error-overlay/error-ignored-frames/error-ignored-frames.test.ts (turbopack) (job)

  • dynamic-requests warnings > warnings on sync cookie access (DD)
  • dynamic-requests warnings > warnings on sync draftMode access (DD)
  • dynamic-requests warnings > warnings on sync headers access (DD)
  • dynamic-requests warnings > warnings on sync params access (DD)
  • dynamic-requests warnings > warnings on sync searchParams access (DD)
  • dynamic-requests warnings > no warnings > should have no warnings on normal rsc page without accessing params (DD)
  • dynamic-requests warnings > no warnings > should only have hydration warnings on hydration mismatch page without accessing params (DD)
Expand output

● dynamic-requests warnings › warnings on sync cookie access

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

- Expected  - 6
+ Received  + 2

  Object {
-   "browserConsoleWarnings": Array [
-     StringContaining "`cookies().get`.",
-   ],
-   "terminalCookieErrors": Array [
-     StringContaining "`cookies().get`.",
-   ],
+   "browserConsoleWarnings": Array [],
+   "terminalCookieErrors": Array [],
  }

  19 |       return line.includes('Route "/request/cookies')
  20 |     })
> 21 |     expect({ browserConsoleWarnings, terminalCookieErrors }).toEqual({
     |                                                              ^
  22 |       browserConsoleWarnings: [expect.stringContaining('`cookies().get`.')],
  23 |       terminalCookieErrors: [expect.stringContaining('`cookies().get`.')],
  24 |     })

  at Object.toEqual (development/app-dir/async-request-warnings/async-request-warnings.test.ts:21:62)

● dynamic-requests warnings › warnings on sync draftMode access

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

- Expected  - 6
+ Received  + 2

  Object {
-   "browserConsoleWarnings": Array [
-     StringContaining "`draftMode().isEnabled`.",
-   ],
-   "terminalCookieErrors": Array [
-     StringContaining "`draftMode().isEnabled`.",
-   ],
+   "browserConsoleWarnings": Array [],
+   "terminalCookieErrors": Array [],
  }

  38 |       return line.includes('Route "/request/draftMode')
  39 |     })
> 40 |     expect({ browserConsoleWarnings, terminalCookieErrors }).toEqual({
     |                                                              ^
  41 |       browserConsoleWarnings: [
  42 |         expect.stringContaining('`draftMode().isEnabled`.'),
  43 |       ],

  at Object.toEqual (development/app-dir/async-request-warnings/async-request-warnings.test.ts:40:62)

● dynamic-requests warnings › warnings on sync headers access

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

- Expected  - 6
+ Received  + 2

  Object {
-   "browserConsoleWarnings": Array [
-     StringContaining "`headers().get`.",
-   ],
-   "terminalCookieErrors": Array [
-     StringContaining "`headers().get`.",
-   ],
+   "browserConsoleWarnings": Array [],
+   "terminalCookieErrors": Array [],
  }

  61 |       return line.includes('Route "/request/headers')
  62 |     })
> 63 |     expect({ browserConsoleWarnings, terminalCookieErrors }).toEqual({
     |                                                              ^
  64 |       browserConsoleWarnings: [expect.stringContaining('`headers().get`.')],
  65 |       terminalCookieErrors: [expect.stringContaining('`headers().get`.')],
  66 |     })

  at Object.toEqual (development/app-dir/async-request-warnings/async-request-warnings.test.ts:63:62)

● dynamic-requests warnings › warnings on sync params access

page.goto: net::ERR_ABORTED; maybe frame was detached?
Call log:
  - navigating to "http://localhost:38383/request/params/[slug]", waiting until "load"

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (development/app-dir/async-request-warnings/async-request-warnings.test.ts:72:21)

● dynamic-requests warnings › warnings on sync searchParams access

browserContext.newPage: Target page, context or browser has been closed
Browser logs:

<launching> /root/.cache/ms-playwright/chromium-1140/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate,HttpsUpgrades,PaintHolding,ThirdPartyStoragePartitioning,LensOverlay --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --headless=old --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/tmp/playwright_chromiumdev_profile-lR1MlV --remote-debugging-pipe --no-startup-window
<launched> pid=1062413
[pid=1062413][err] Old Headless mode will be removed from the Chrome binary soon. Please use the new Headless mode (https://developer.chrome.com/docs/chromium/new-headless) or the chrome-headless-shell which is a standalone implementation of the old Headless mode (https://developer.chrome.com/blog/chrome-headless-shell).
[pid=1062413][err] 
[pid=1062413][err] [1118/082732.338025:WARNING:sandbox_linux.cc(430)] InitializeSandbox() called with multiple threads in process gpu-process.
[pid=1062413][err] [1118/082732.338844:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning)
[pid=1062413][err] [1118/082732.345564:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
[pid=1062413] <gracefully close start>

  266 |
  267 |     await this.initContextTracing(url, context!)
> 268 |     page = await context!.newPage()
      |                           ^
  269 |
  270 |     page.setDefaultTimeout(defaultTimeout)
  271 |     page.setDefaultNavigationTimeout(defaultTimeout)

  at Playwright.newPage (lib/browsers/playwright.ts:268:27)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (development/app-dir/async-request-warnings/async-request-warnings.test.ts:91:21)

● dynamic-requests warnings › no warnings › should have no warnings on normal rsc page without accessing params

browserContext.newPage: Target page, context or browser has been closed

  266 |
  267 |     await this.initContextTracing(url, context!)
> 268 |     page = await context!.newPage()
      |                           ^
  269 |
  270 |     page.setDefaultTimeout(defaultTimeout)
  271 |     page.setDefaultNavigationTimeout(defaultTimeout)

  at Playwright.newPage (lib/browsers/playwright.ts:268:27)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (development/app-dir/async-request-warnings/async-request-warnings.test.ts:109:23)

● dynamic-requests warnings › no warnings › should only have hydration warnings on hydration mismatch page without accessing params

browserContext.newPage: Target page, context or browser has been closed

  266 |
  267 |     await this.initContextTracing(url, context!)
> 268 |     page = await context!.newPage()
      |                           ^
  269 |
  270 |     page.setDefaultTimeout(defaultTimeout)
  271 |     page.setDefaultNavigationTimeout(defaultTimeout)

  at Playwright.newPage (lib/browsers/playwright.ts:268:27)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (development/app-dir/async-request-warnings/async-request-warnings.test.ts:119:23)

● Test suite failed to run

browserContext.close: Target page, context or browser has been closed

  42 | export async function quit() {
  43 |   await Promise.all(pendingTeardown.map((fn) => fn()))
> 44 |   await context?.close()
     |   ^
  45 |   await browser?.close()
  46 |   context = undefined
  47 |   browser = undefined

  at quit (lib/browsers/playwright.ts:44:3)
  at Object.<anonymous> (lib/next-webdriver.ts:45:7)

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

  • app dir - css > css support > chunks > should bundle css resources into chunks (DD)
  • app dir - css > css support > client components > should support css modules inside client page (DD)
  • app dir - css > css support > client components > should support css modules inside client components (DD)
  • app dir - css > css support > client layouts > should support css modules inside client layouts (DD)
  • app dir - css > css support > client layouts > should support global css inside client layouts (DD)
  • app dir - css > css support > client pages > should support css modules inside client pages (DD)
  • app dir - css > css support > client pages > should support global css inside client pages (DD)
  • app dir - css > css support > css ordering > should have inner layers take precedence over outer layers (DD)
  • app dir - css > css support > page extensions > should include css imported in MDX pages (DD)
  • app dir - css > css support > server layouts > should support css modules inside server layouts (DD)
  • app dir - css > css support > server layouts > should support external css imports (DD)
  • app dir - css > css support > server pages > should support global css inside server pages (DD)
  • app dir - css > css support > server pages > should support css modules inside server pages (DD)
  • app dir - css > css support > server pages > should not contain pages css in app dir page (DD)
  • app dir - css > css support > server pages > should support css modules shared between server pages (DD)
  • app dir - css > css support > special entries > should include css imported in loading.js (DD)
  • app dir - css > css support > special entries > should include css imported in client template.js (DD)
  • app dir - css > css support > special entries > should include css imported in server template.js (DD)
  • app dir - css > css support > special entries > should include css imported in client not-found.js (DD)
  • app dir - css > css support > special entries > should include css imported in server not-found.js (DD)
  • app dir - css > css support > special entries > should include root layout css for root not-found.js (DD)
  • app dir - css > css support > special entries > should include css imported in root not-found.js (DD)
  • app dir - css > css support > special entries > should include css imported in error.js (DD)
  • app dir - css > pages dir > should include css modules and global css after page transition (DD)
  • app dir - css > sass support > client layouts > should support global sass/scss inside client layouts (DD)
  • app dir - css > sass support > client layouts > should support sass/scss modules inside client layouts (DD)
  • app dir - css > sass support > client pages > should support global sass/scss inside client pages (DD)
  • app dir - css > sass support > client pages > should support sass/scss modules inside client pages (DD)
  • app dir - css > sass support > server layouts > should support global sass/scss inside server layouts (DD)
  • app dir - css > sass support > server layouts > should support sass/scss modules inside server layouts (DD)
  • app dir - css > sass support > server pages > should support global sass/scss inside server pages (DD)
  • app dir - css > sass support > server pages > should support sass/scss modules inside server pages (DD)
Expand output

● app dir - css › css support › server layouts › should support global css inside server layouts

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › server layouts › should support css modules inside server layouts

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › server layouts › should support external css imports

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › server pages › should support global css inside server pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › server pages › should support css modules inside server pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › server pages › should not contain pages css in app dir page

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › server pages › should support css modules shared between server pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › client layouts › should support css modules inside client layouts

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › client layouts › should support global css inside client layouts

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › client pages › should support css modules inside client pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › client pages › should support global css inside client pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › client components › should support css modules inside client page

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › client components › should support css modules inside client components

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › special entries › should include css imported in loading.js

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › special entries › should include css imported in client template.js

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › special entries › should include css imported in server template.js

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › special entries › should include css imported in client not-found.js

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › special entries › should include css imported in server not-found.js

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › special entries › should include root layout css for root not-found.js

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › special entries › should include css imported in root not-found.js

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › special entries › should include css imported in error.js

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › page extensions › should include css imported in MDX pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › chunks › should bundle css resources into chunks

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › css support › css ordering › should have inner layers take precedence over outer layers

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › sass support › server layouts › should support global sass/scss inside server layouts

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › sass support › server layouts › should support sass/scss modules inside server layouts

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › sass support › server pages › should support global sass/scss inside server pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › sass support › server pages › should support sass/scss modules inside server pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › sass support › client layouts › should support global sass/scss inside client layouts

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › sass support › client layouts › should support sass/scss modules inside client layouts

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › sass support › client pages › should support global sass/scss inside client pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › sass support › client pages › should support sass/scss modules inside client pages

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir - css › pages dir › should include css modules and global css after page transition

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

pnpm test-dev-turbo test/development/acceptance-app/app-hmr-changes.test.ts (turbopack) (job)

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

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

page.waitForSelector: Target page, context or browser has been closed
Call log:
  - waiting for locator('[data-nextjs-data-runtime-error-copy-devtools-url]') to be visible

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

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Object.elementByCss (development/app-dir/devtool-copy-button/devtool-copy-button.test.ts:16:10)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:455:17)
  at Object.getAttribute (development/app-dir/devtool-copy-button/devtool-copy-button.test.ts:17:10)

● Test suite failed to run

browserContext.close: Target page, context or browser has been closed

  42 | export async function quit() {
  43 |   await Promise.all(pendingTeardown.map((fn) => fn()))
> 44 |   await context?.close()
     |   ^
  45 |   await browser?.close()
  46 |   context = undefined
  47 |   browser = undefined

  at quit (lib/browsers/playwright.ts:44:3)
  at Object.<anonymous> (lib/next-webdriver.ts:45:7)

pnpm test test/integration/plugin-mdx-rs/test/index.test.ts (turbopack) (job)

  • MDX-rs Configuration > MDX-rs Plugin support > should render an MDX page correctly (DD)
  • MDX-rs Configuration > MDX-rs Plugin support > should render an MDX page with globally provided components (from mdx-components.js) correctly (DD)
  • MDX-rs Configuration > MDX-rs Plugin support with mdx transform options > should render an MDX page correctly (DD)
Expand output

● MDX-rs Configuration › MDX-rs Plugin support › should render an MDX page correctly

expect(received).toMatch(expected)

Expected pattern: /Hello MDX/
Received string:  "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><title data-next-head=\"\">500: Internal Server Error</title><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/packages_next_dist_compiled_34ace371._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_14870492._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_client_874eadb1._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_0ddb1751._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_app_809261c2.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__dab12401._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_c220116a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_plugin-mdx-rs_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_plugin-mdx-rs_pages__app_35756f20._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_0a642348._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_f764dc06._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_error_5ee5793a.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__f1dec4e0._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_plugin-mdx-rs_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_plugin-mdx-rs_pages__error_45838025._.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 style=\"font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center\"><div style=\"line-height:48px\"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class=\"next-error-h1\" style=\"display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top\">500</h1><div style=\"display:inline-block\"><h2 style=\"font-size:14px;font-weight:400;line-height:28px\">Internal Server Error<!-- -->.</h2></div></div></div></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  24 |     })
  25 |     it('should render an MDX page correctly', async () => {
> 26 |       expect(await renderViaHTTP(appPort, '/')).toMatch(/Hello MDX/)
     |                                                 ^
  27 |     })
  28 |
  29 |     it('should render an MDX page with component correctly', async () => {

  at Object.toMatch (integration/plugin-mdx-rs/test/index.test.ts:26:49)

● MDX-rs Configuration › MDX-rs Plugin support › should render an MDX page with globally provided components (from mdx-components.js) correctly

expect(received).toMatch(expected)

Expected pattern: /Marker was rendered!/
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/packages_next_dist_compiled_34ace371._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_14870492._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_client_874eadb1._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_0ddb1751._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_app_809261c2.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__dab12401._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_c220116a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_plugin-mdx-rs_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_plugin-mdx-rs_pages__app_35756f20._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_0a642348._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_f764dc06._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_error_5ee5793a.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__f1dec4e0._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_plugin-mdx-rs_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_plugin-mdx-rs_pages__error_45838025._.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\":\"ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/plugin-mdx-rs/.next/dev/server/pages/provider/client-build-manifest.json'\",\"stack\":\"Error: ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/plugin-mdx-rs/.next/dev/server/pages/provider/client-build-manifest.json'\\n    at Object.readFileUtf8 (node:internal/fs/sync:25:18)\\n    at readFileSync (node:fs:441:19)\\n    at readPartialManifestContent (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:45:33)\\n    at TurbopackManifestLoader.loadClientBuildManifest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:191:93)\\n    at handleRouteType (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/turbopack-utils.js:179:42)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/hot-reloader-turbopack.js:1112:21\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevBundlerService.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/dev-bundler-service.js:20:20)\\n    at async DevServer.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:670:9)\\n    at async Object.ensure (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:173:17)\\n    at async DevRouteMatcherManager.matchAll (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js:90:13)\\n    at async DevRouteMatcherManager.match (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/route-matcher-managers/default-route-matcher-manager.js:163:26)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:340:31)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:912:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:386: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:382:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:240:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:436:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:484:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:226:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  32 |
  33 |     it('should render an MDX page with globally provided components (from `mdx-components.js`) correctly', async () => {
> 34 |       expect(await renderViaHTTP(appPort, '/provider')).toMatch(
     |                                                         ^
  35 |         /Marker was rendered!/
  36 |       )
  37 |     })

  at Object.toMatch (integration/plugin-mdx-rs/test/index.test.ts:34:57)

● MDX-rs Configuration › MDX-rs Plugin support with mdx transform options › should render an MDX page correctly

expect(received).toMatch(expected)

Expected pattern: /<table>\n<thead>\n<tr>\n<th>foo/
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/packages_next_dist_compiled_34ace371._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_14870492._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_client_874eadb1._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_0ddb1751._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_app_809261c2.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__dab12401._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_c220116a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_plugin-mdx-rs_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_plugin-mdx-rs_pages__app_35756f20._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_0a642348._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_f764dc06._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_error_5ee5793a.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__f1dec4e0._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_plugin-mdx-rs_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_plugin-mdx-rs_pages__error_45838025._.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\":\"ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/plugin-mdx-rs/.next/dev/server/pages/gfm/client-build-manifest.json'\",\"stack\":\"Error: ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/plugin-mdx-rs/.next/dev/server/pages/gfm/client-build-manifest.json'\\n    at Object.readFileUtf8 (node:internal/fs/sync:25:18)\\n    at readFileSync (node:fs:441:19)\\n    at readPartialManifestContent (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:45:33)\\n    at TurbopackManifestLoader.loadClientBuildManifest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/shared/lib/turbopack/manifest-loader.js:191:93)\\n    at handleRouteType (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/turbopack-utils.js:179:42)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/hot-reloader-turbopack.js:1112:21\\n    at async Span.traceAsyncFn (/root/actions-runner/_work/next.js/next.js/packages/next/dist/trace/trace.js:157:20)\\n    at async DevBundlerService.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/dev-bundler-service.js:20:20)\\n    at async DevServer.ensurePage (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:670:9)\\n    at async Object.ensure (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:173:17)\\n    at async DevRouteMatcherManager.matchAll (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js:90:13)\\n    at async DevRouteMatcherManager.match (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/route-matcher-managers/default-route-matcher-manager.js:163:26)\\n    at async NextNodeServer.handleCatchallRenderRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/next-server.js:340:31)\\n    at async DevServer.handleRequestImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:912:17)\\n    at async /root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:386: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:382:24)\\n    at async invokeRender (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:240:21)\\n    at async handleRequest (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:436:24)\\n    at async requestHandlerImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/router-server.js:484:13)\\n    at async Server.requestListener (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/start-server.js:226:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  66 |
  67 |     it('should render an MDX page correctly', async () => {
> 68 |       expect(await renderViaHTTP(appPort, '/gfm')).toMatch(
     |                                                    ^
  69 |         /<table>\n<thead>\n<tr>\n<th>foo/
  70 |       )
  71 |     })

  at Object.toMatch (integration/plugin-mdx-rs/test/index.test.ts:68:52)

pnpm test-dev-turbo test/development/basic/hmr/full-reload-yes-base-path-yes-asset-prefix.test.ts (turbopack) (job)

  • HMR - Full Reload, nextConfig: {"basePath":"/docs","assetPrefix":"/asset-prefix"} > should warn about full reload in cli output - anonymous page function (DD)
  • HMR - Full Reload, nextConfig: {"basePath":"/docs","assetPrefix":"/asset-prefix"} > should warn about full reload in cli output - runtime-error (DD)
Expand output

● HMR - Full Reload, nextConfig: {"basePath":"/docs","assetPrefix":"/asset-prefix"} › should warn about full reload in cli output - anonymous page function

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

Expected: "hello world"
Received: ""

  21 |       'Fast Refresh had to perform a full reload when ./pages/hmr/anonymous-page-function.js changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload'
  22 |
> 23 |     expect(await browser.elementByCss('p').text()).toBe('hello world')
     |                                                    ^
  24 |     expect(next.cliOutput.slice(start)).not.toContain(cliWarning)
  25 |
  26 |     const currentFileContent = await next.readFile(

  at Object.toBe (development/basic/hmr/run-full-reload-hmr-test.util.ts:23:52)

● HMR - Full Reload, nextConfig: {"basePath":"/docs","assetPrefix":"/asset-prefix"} › should warn about full reload in cli output - runtime-error

expect(received).toMatch(expected)

Expected pattern: /whoops is not defined/
Received string:  "Runtime Error
ENOENT: no such file or directory, open '/tmp/next-install-4d938fe3196525e04b859a98d84bd81b28d96a2b2564bb75124f97ac08816bd6/.next/dev/server/pages/hmr/runtime-error/client-build-manifest.json'"

  61 |
  62 |     await retry(async () => {
> 63 |       expect(await getRedboxHeader(browser)).toMatch(/whoops is not defined/)
     |                                              ^
  64 |     })
  65 |     expect(next.cliOutput.slice(start)).not.toContain(cliWarning)
  66 |

  at toMatch (development/basic/hmr/run-full-reload-hmr-test.util.ts:63:46)
  at retry (lib/next-test-utils.ts:797:14)
  at Object.<anonymous> (development/basic/hmr/run-full-reload-hmr-test.util.ts:62:5)

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

  • Catches Missing getStaticProps > development mode > should catch it in development mode (DD)
Expand output

● Catches Missing getStaticProps › development mode › should catch it in development mode

expect(received).toMatch(expected)

Expected pattern: /getStaticPaths was added without a getStaticProps in/
Received string:  "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><title data-next-head=\"\">500: Internal Server Error</title><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/packages_next_dist_compiled_34ace371._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_14870492._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_client_874eadb1._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_0ddb1751._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_app_809261c2.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__2e778fad._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_c220116a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_catches-missing-getStaticProps_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_catches-missing-getStaticProps_pages__app_7f764cee._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_shared_lib_0a642348._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_dist_f764dc06._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/packages_next_error_5ee5793a.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__1aa8463a._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/test_integration_catches-missing-getStaticProps_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-test_integration_catches-missing-getStaticProps_pages__error_83604b4d._.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 style=\"font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center\"><div style=\"line-height:48px\"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class=\"next-error-h1\" style=\"display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top\">500</h1><div style=\"display:inline-block\"><h2 style=\"font-size:14px;font-weight:400;line-height:28px\">Internal Server Error<!-- -->.</h2></div></div></div></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  23 |         await killApp(app)
  24 |
> 25 |         expect(html).toMatch(errorRegex)
     |                      ^
  26 |       })
  27 |     }
  28 |   )

  at Object.toMatch (integration/catches-missing-getStaticProps/test/index.test.ts:25:22)

pnpm test test/integration/app-config-asset-prefix/test/index.test.ts (turbopack) (job)

  • App assetPrefix config > should render correctly with assetPrefix: "/" (DD)
Expand output

● App assetPrefix config › should render correctly with assetPrefix: "/"

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

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

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at Object.elementById (integration/app-config-asset-prefix/test/index.test.ts:29:35)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:433:17)
  at Object.text (integration/app-config-asset-prefix/test/index.test.ts:29:56)

pnpm test test/integration/next-image-new/image-from-node-modules/test/index.test.ts (turbopack) (job)

  • Image Component from node_modules development mode > should apply image config for node_modules (DD)
Expand output

● Image Component from node_modules development mode › should apply image config for node_modules

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

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

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:405:17)
  at Playwright.elementByCss [as elementById] (lib/browsers/playwright.ts:425:17)
  at Object.elementById (integration/next-image-new/image-from-node-modules/test/index.test.ts:20:8)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:627:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:455:17)
  at Object.getAttribute (integration/next-image-new/image-from-node-modules/test/index.test.ts:21:8)

pnpm test-start-turbo test/e2e/app-dir/actions/app-action-size-limit-invalid.test.ts (turbopack) (job)

  • app-dir action size limit invalid config > should respect the size set in serverActions.bodySizeLimit for multipart fetch actions > should not error for requests that are at the size limit (DD)
  • app-dir action size limit invalid config > should respect the size set in serverActions.bodySizeLimit for multipart fetch actions > should error for requests that exceed the size limit (DD)
  • app-dir action size limit invalid config > should respect the size set in serverActions.bodySizeLimit for plaintext fetch actions > should error for requests that exceed the size limit (DD)
Expand output

● app-dir action size limit invalid config › should respect the size set in serverActions.bodySizeLimit for plaintext fetch actions › should error for requests that exceed the size limit

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app-dir action size limit invalid config › should respect the size set in serverActions.bodySizeLimit for multipart fetch actions › should not error for requests that are at the size limit

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app-dir action size limit invalid config › should respect the size set in serverActions.bodySizeLimit for multipart fetch actions › should error for requests that exceed the size limit

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

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

  • app dir client cache with parallel routes > prefetch={true} > should prefetch the full page (DD)
  • app dir client cache with parallel routes > prefetch={true} > should re-use the cache for the full page, only for 5 mins (DD)
Expand output

● app dir client cache with parallel routes › prefetch={true} › should prefetch the full page

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● app dir client cache with parallel routes › prefetch={true} › should re-use the cache for the full page, only for 5 mins

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

pnpm test-start-turbo test/e2e/app-dir/node-extensions/node-extensions.random.test.ts (turbopack) (job)

  • Node Extensions > Random > Legacy > should not error when accessing middlware that use Math.random() (DD)
  • Node Extensions > Random > Legacy > should not error when accessing pages that use Math.random() in App Router (DD)
  • Node Extensions > Random > Legacy > should not error when accessing routes that use Math.random() in App Router (DD)
  • Node Extensions > Random > Legacy > should not error when accessing pages that use Math.random() in Pages Router (DD)
  • Node Extensions > Random > Legacy > should not error when accessing routes that use Math.random() in Pages Router (DD)
Expand output

● Node Extensions › Random › Legacy › should not error when accessing middlware that use Math.random()

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● Node Extensions › Random › Legacy › should not error when accessing pages that use Math.random() in App Router

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● Node Extensions › Random › Legacy › should not error when accessing routes that use Math.random() in App Router

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● Node Extensions › Random › Legacy › should not error when accessing pages that use Math.random() in Pages Router

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● Node Extensions › Random › Legacy › should not error when accessing routes that use Math.random() in Pages Router

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

pnpm test-start-turbo test/e2e/postcss-config-cjs/index.test.ts (turbopack) (job)

  • postcss-config-cjs > works with postcss.config.cjs files (DD)
Expand output

● postcss-config-cjs › works with postcss.config.cjs files

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

pnpm test-start-turbo test/e2e/app-dir/css-order/css-order.test.ts (turbopack) (job)

  • css-order turbo > should load correct styles on first (DD)
  • css-order turbo > should load correct styles on second (DD)
  • css-order turbo > should load correct styles on third (DD)
  • css-order turbo > should load correct styles on first-client (DD)
  • css-order turbo > should load correct styles on second-client (DD)
  • css-order turbo > should load correct styles on interleaved-a (DD)
  • css-order turbo > should load correct styles on interleaved-b (DD)
  • css-order turbo > should load correct styles on big-interleaved-a (DD)
  • css-order turbo > should load correct styles on big-interleaved-b (DD)
  • css-order turbo > should load correct styles on pages-first (DD)
  • css-order turbo > should load correct styles on pages-second (DD)
  • css-order turbo > should load correct styles on pages-third (DD)
  • css-order turbo > should load correct styles on pages-interleaved-a (DD)
  • css-order turbo > should load correct styles on pages-interleaved-b (DD)
  • css-order turbo > should load correct styles on vendor (DD)
Expand output

● css-order turbo › should load correct styles on first

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on second

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on third

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on first-client

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on second-client

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on interleaved-a

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on interleaved-b

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on big-interleaved-a

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on big-interleaved-b

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on pages-first

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on pages-second

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on pages-third

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on pages-interleaved-a

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on pages-interleaved-b

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

● css-order turbo › should load correct styles on vendor

next build failed with code/signal 1

  75 |             if (code || signal)
  76 |               reject(
> 77 |                 new Error(
     |                 ^
  78 |                   `next build failed with code/signal ${code || signal}`
  79 |                 )
  80 |               )

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

pnpm test-start-turbo test/production/build-spinners/index.test.ts (turbopack) (job)

  • segment cache (revalidation) > re-fetch visible links after a navigation, if needed (DD)
  • segment cache (revalidation) > delay re-prefetch after revalidation to allow CDN propagation (DD)
Expand output

● segment cache (revalidation) › re-fetch visible links after a navigation, if needed

page.unroute: Target page, context or browser has been closed

  583 |       // Clean up
  584 |       currentBatch = prevBatch
> 585 |       await page.unroute('**/*', routeHandler)
      |                  ^
  586 |       page.off('framedetached', hardNavigationHandler)
  587 |     }
  588 |   }

  at unroute (lib/router-act.ts:585:18)
  at Object.<anonymous> (e2e/app-dir/segment-cache/revalidation/segment-cache-revalidation.test.ts:284:5)

● segment cache (revalidation) › delay re-prefetch after revalidation to allow CDN propagation

browserContext.newPage: Target page, context or browser has been closed
Browser logs:

<launching> /root/.cache/ms-playwright/chromium-1140/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate,HttpsUpgrades,PaintHolding,ThirdPartyStoragePartitioning,LensOverlay --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --headless=old --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/tmp/playwright_chromiumdev_profile-4Zy9i5 --remote-debugging-pipe --no-startup-window
<launched> pid=3418388
[pid=3418388][err] Old Headless mode will be removed from the Chrome binary soon. Please use the new Headless mode (https://developer.chrome.com/docs/chromium/new-headless) or the chrome-headless-shell which is a standalone implementation of the old Headless mode (https://developer.chrome.com/blog/chrome-headless-shell).
[pid=3418388][err] 
[pid=3418388][err] [1118/090446.550580:WARNING:sandbox_linux.cc(430)] InitializeSandbox() called with multiple threads in process gpu-process.
[pid=3418388][err] [1118/090446.554065:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning)
[pid=3418388][err] [1118/090446.564399:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
[pid=3418388] <gracefully close start>

  266 |
  267 |     await this.initContextTracing(url, context!)
> 268 |     page = await context!.newPage()
      |                           ^
  269 |
  270 |     page.setDefaultTimeout(defaultTimeout)
  271 |     page.setDefaultNavigationTimeout(defaultTimeout)

  at Playwright.newPage (lib/browsers/playwright.ts:268:27)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/app-dir/segment-cache/revalidation/segment-cache-revalidation.test.ts:320:21)

● Test suite failed to run

browserContext.close: Target page, context or browser has been closed

  42 | export async function quit() {
  43 |   await Promise.all(pendingTeardown.map((fn) => fn()))
> 44 |   await context?.close()
     |   ^
  45 |   await browser?.close()
  46 |   context = undefined
  47 |   browser = undefined

  at quit (lib/browsers/playwright.ts:44:3)
  at Object.<anonymous> (lib/next-webdriver.ts:45:7)

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

  • segment cache (metadata) > regression: prefetch the head if it's missing even if all other data is cached > pages with runtime-prefetchable content and dynamic metadata, using a runtime prefetch (DD)
Expand output

● segment cache (metadata) › regression: prefetch the head if it's missing even if all other data is cached › pages with runtime-prefetchable content and dynamic metadata, using a runtime prefetch

thrown: "Exceeded timeout of 120000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  70 |     })
  71 |
> 72 |     it('pages with runtime-prefetchable content and dynamic metadata, using a runtime prefetch', async () => {
     |     ^
  73 |       let act: ReturnType<typeof createRouterAct>
  74 |       const browser = await next.browser('/', {
  75 |         beforePageLoad(p) {

  at it (e2e/app-dir/segment-cache/metadata/segment-cache-metadata.test.ts:72:5)
  at describe (e2e/app-dir/segment-cache/metadata/segment-cache-metadata.test.ts:12:3)
  at Object.describe (e2e/app-dir/segment-cache/metadata/segment-cache-metadata.test.ts:4:1)

@ijjk
Copy link
Member

ijjk commented Nov 13, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 Change
buildDuration 18.7s 16.7s N/A
buildDurationCached 15.3s 12.4s N/A
nodeModulesSize 452 MB 452 MB
nextStartRea..uration (ms) 703ms 705ms N/A
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 Change
436-HASH.js gzip 5.32 kB 5.32 kB N/A
4779.HASH.js gzip 169 B 169 B
9760-HASH.js gzip 52.3 kB 52.6 kB ⚠️ +339 B
c57d0559-HASH.js gzip 62.3 kB 62.3 kB N/A
framework-HASH.js gzip 59.8 kB 59.8 kB
main-app-HASH.js gzip 254 B 257 B N/A
main-HASH.js gzip 37.4 kB 37.5 kB ⚠️ +110 B
webpack-HASH.js gzip 1.69 kB 1.69 kB
Overall change 151 kB 152 kB ⚠️ +449 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 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 sokra/refactor-session-dependent-dirty-5 Change
_app-HASH.js gzip 193 B 194 B N/A
_error-HASH.js gzip 182 B 182 B
css-HASH.js gzip 334 B 334 B
dynamic-HASH.js gzip 1.81 kB 1.81 kB N/A
edge-ssr-HASH.js gzip 255 B 254 B N/A
head-HASH.js gzip 350 B 351 B N/A
hooks-HASH.js gzip 384 B 384 B
image-HASH.js gzip 4.78 kB 4.77 kB N/A
index-HASH.js gzip 260 B 259 B N/A
link-HASH.js gzip 2.5 kB 2.5 kB N/A
routerDirect..HASH.js gzip 316 B 320 B N/A
script-HASH.js gzip 388 B 388 B
withRouter-HASH.js gzip 316 B 314 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.39 kB 1.39 kB
Client Build Manifests
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 Change
_buildManifest.js gzip 718 B 720 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 Change
index.html gzip 524 B 523 B N/A
link.html gzip 538 B 538 B
withRouter.html gzip 521 B 518 B N/A
Overall change 538 B 538 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 Change
edge-ssr.js gzip 126 kB 126 kB N/A
page.js gzip 251 kB 252 kB ⚠️ +703 B
Overall change 251 kB 252 kB ⚠️ +703 B
Middleware size Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 Change
middleware-b..fest.js gzip 634 B 640 B N/A
middleware-r..fest.js gzip 156 B 156 B
middleware.js gzip 32.9 kB 33 kB ⚠️ +131 B
edge-runtime..pack.js gzip 846 B 846 B
Overall change 33.9 kB 34 kB ⚠️ +131 B
Next Runtimes
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 Change
app-page-exp...dev.js gzip 296 kB 296 kB
app-page-exp..prod.js gzip 153 kB 153 kB
app-page-tur...dev.js gzip 296 kB 296 kB
app-page-tur..prod.js gzip 153 kB 153 kB
app-page-tur...dev.js gzip 292 kB 292 kB N/A
app-page-tur..prod.js gzip 151 kB 151 kB
app-page.run...dev.js gzip 293 kB 293 kB N/A
app-page.run..prod.js gzip 151 kB 151 kB
app-route-ex...dev.js gzip 68.3 kB 68.3 kB
app-route-ex..prod.js gzip 47.2 kB 47.2 kB
app-route-tu...dev.js gzip 68.3 kB 68.3 kB
app-route-tu..prod.js gzip 47.2 kB 47.2 kB
app-route-tu...dev.js gzip 68 kB 68 kB
app-route-tu..prod.js gzip 47 kB 47 kB
app-route.ru...dev.js gzip 68 kB 68 kB
app-route.ru..prod.js gzip 47 kB 47 kB
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 328 B 328 B
dist_client_...dev.js gzip 320 B 320 B
dist_client_...dev.js gzip 318 B 318 B
pages-api-tu...dev.js gzip 40.9 kB 40.9 kB
pages-api-tu..prod.js gzip 31 kB 31 kB
pages-api.ru...dev.js gzip 40.8 kB 40.8 kB
pages-api.ru..prod.js gzip 30.9 kB 30.9 kB
pages-turbo....dev.js gzip 50.4 kB 50.4 kB
pages-turbo...prod.js gzip 37.8 kB 37.8 kB
pages.runtim...dev.js gzip 50.3 kB 50.3 kB
pages.runtim..prod.js gzip 37.8 kB 37.8 kB
server.runti..prod.js gzip 76.8 kB 76.8 kB
Overall change 2.06 MB 2.06 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/refactor-session-dependent-dirty-5 Change
0.pack gzip 3.22 MB 3.23 MB ⚠️ +5.64 kB
index.pack gzip 94.8 kB 95.1 kB ⚠️ +271 B
Overall change 3.32 MB 3.32 MB ⚠️ +5.92 kB
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
failed to diff
Diff for dynamic-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 1033: /***/ (
+    /***/ 431: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function () {
-          return __webpack_require__(6490);
+          return __webpack_require__(8084);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 5323: /***/ (
+    /***/ 2699: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -60,7 +60,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(2223)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(9289);
+      const _loadablecontextsharedruntime = __webpack_require__(3785);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -293,73 +293,34 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 6490: /***/ (
+    /***/ 3785: /***/ (
       __unused_webpack_module,
-      __webpack_exports__,
+      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 */
+      /* __next_internal_client_entry_do_not_use__  cjs */
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
       });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(1503);
-      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7320);
-      /* 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() */ 4779)
-            .then(__webpack_require__.bind(__webpack_require__, 4779))
-            .then((mod) => mod.Hello),
-        {
-          loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 4779],
-          },
-        }
+      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__(2223)
       );
-      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;
-
-      /***/
-    },
-
-    /***/ 7320: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(7340);
+      const LoadableContext = _react.default.createContext(null);
+      if (false) {
+      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
 
       /***/
     },
 
-    /***/ 7340: /***/ (module, exports, __webpack_require__) => {
+    /***/ 6828: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -392,7 +353,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         __webpack_require__(2223)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(5323)
+        __webpack_require__(2699)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -492,29 +453,68 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 9289: /***/ (
+    /***/ 7514: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(6828);
+
+      /***/
+    },
+
+    /***/ 8084: /***/ (
       __unused_webpack_module,
-      exports,
+      __webpack_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;
-        },
+      __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 */
       });
-      const _interop_require_default = __webpack_require__(1532);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(2223)
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(1503);
+      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(7514);
+      /* 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() */ 9573)
+            .then(__webpack_require__.bind(__webpack_require__, 9573))
+            .then((mod) => mod.Hello),
+        {
+          loadableGenerated: {
+            webpack: () => [/*require.resolve*/ 9573],
+          },
+        }
       );
-      const LoadableContext = _react.default.createContext(null);
-      if (false) {
-      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+      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;
 
       /***/
     },
@@ -524,7 +524,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1033)
+      __webpack_exec__(431)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for edge-ssr-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [676],
   {
-    /***/ 1819: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/edge-ssr",
-        function () {
-          return __webpack_require__(7521);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7521: /***/ (
+    /***/ 983: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -37,13 +20,30 @@
 
       /***/
     },
+
+    /***/ 985: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/edge-ssr",
+        function () {
+          return __webpack_require__(983);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1819)
+      __webpack_exec__(985)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,34 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [5350],
   {
-    /***/ 619: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/head",
-        function () {
-          return __webpack_require__(9891);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7997: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(6705);
-
-      /***/
-    },
-
-    /***/ 9891: /***/ (
+    /***/ 1417: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7997);
+        __webpack_require__(5171);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -76,13 +49,40 @@
 
       /***/
     },
+
+    /***/ 1937: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/head",
+        function () {
+          return __webpack_require__(1417);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 5171: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(7505);
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(619)
+      __webpack_exec__(1937)
     );
     /******/ 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],
   {
-    /***/ 1679: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function () {
-          return __webpack_require__(4655);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 4655: /***/ (
+    /***/ 1598: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -76,13 +59,30 @@
 
       /***/
     },
+
+    /***/ 3925: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/hooks",
+        function () {
+          return __webpack_require__(1598);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1679)
+      __webpack_exec__(3925)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2983],
   {
-    /***/ 797: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/image",
-        function () {
-          return __webpack_require__(5999);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 1713: /***/ (__unused_webpack_module, exports) => {
+    /***/ 881: /***/ (__unused_webpack_module, exports) => {
       "use strict";
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -58,7 +41,7 @@
       /***/
     },
 
-    /***/ 2263: /***/ (module, exports, __webpack_require__) => {
+    /***/ 1511: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -136,7 +119,137 @@
       /***/
     },
 
-    /***/ 2728: /***/ (module, exports, __webpack_require__) => {
+    /***/ 1744: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "default", {
+        enumerable: true,
+        get: function () {
+          return _default;
+        },
+      });
+      const _findclosestquality = __webpack_require__(7054);
+      function defaultLoader({ config, src, width, quality }) {
+        if (
+          src.startsWith("/") &&
+          src.includes("?") &&
+          config.localPatterns?.length === 1 &&
+          config.localPatterns[0].pathname === "**" &&
+          config.localPatterns[0].search === ""
+        ) {
+          throw Object.defineProperty(
+            new Error(
+              `Image with src "${src}" is using a query string which is not configured in images.localPatterns.` +
+                `\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`
+            ),
+            "__NEXT_ERROR_CODE",
+            {
+              value: "E871",
+              enumerable: false,
+              configurable: true,
+            }
+          );
+        }
+        if (false) {
+        }
+        const q = (0, _findclosestquality.findClosestQuality)(quality, config);
+        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
+
+      /***/
+    },
+
+    /***/ 2388: /***/ (
+      __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/react@19.2.0/node_modules/react/jsx-runtime.js
+      var jsx_runtime = __webpack_require__(1503);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/image.js
+      var next_image = __webpack_require__(3866);
+      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;
+
+      /***/
+    },
+
+    /***/ 3866: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(6888);
+
+      /***/
+    },
+
+    /***/ 4483: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/image",
+        function () {
+          return __webpack_require__(2388);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 6600: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -158,17 +271,17 @@
         __webpack_require__(9507)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(6705)
+        __webpack_require__(7505)
       );
-      const _getimgprops = __webpack_require__(3556);
-      const _imageconfig = __webpack_require__(3157);
-      const _imageconfigcontextsharedruntime = __webpack_require__(9323);
-      const _warnonce = __webpack_require__(6173);
-      const _routercontextsharedruntime = __webpack_require__(6046);
+      const _getimgprops = __webpack_require__(9588);
+      const _imageconfig = __webpack_require__(2645);
+      const _imageconfigcontextsharedruntime = __webpack_require__(5451);
+      const _warnonce = __webpack_require__(7549);
+      const _routercontextsharedruntime = __webpack_require__(5470);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3744)
+        __webpack_require__(1744)
       );
-      const _usemergedref = __webpack_require__(2263);
+      const _usemergedref = __webpack_require__(1511);
       // This is replaced by webpack define plugin
       const configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -495,7 +608,96 @@
       /***/
     },
 
-    /***/ 3556: /***/ (
+    /***/ 6888: /***/ (
+      __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__(9588);
+      const _imagecomponent = __webpack_require__(6600);
+      const _imageloader = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(1744)
+      );
+      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: [32, 48, 64, 96, 128, 256, 384],
+            qualities: [75],
+            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
+
+      /***/
+    },
+
+    /***/ 7054: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "findClosestQuality", {
+        enumerable: true,
+        get: function () {
+          return findClosestQuality;
+        },
+      });
+      function findClosestQuality(quality, config) {
+        const q = quality || 75;
+        if (!config?.qualities?.length) {
+          return q;
+        }
+        return config.qualities.reduce(
+          (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),
+          0
+        );
+      } //# sourceMappingURL=find-closest-quality.js.map
+
+      /***/
+    },
+
+    /***/ 9588: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -511,9 +713,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(6173);
-      const _imageblursvg = __webpack_require__(1713);
-      const _imageconfig = __webpack_require__(3157);
+      const _warnonce = __webpack_require__(7549);
+      const _imageblursvg = __webpack_require__(881);
+      const _imageconfig = __webpack_require__(2645);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -943,215 +1145,13 @@
 
       /***/
     },
-
-    /***/ 3744: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "default", {
-        enumerable: true,
-        get: function () {
-          return _default;
-        },
-      });
-      const _findclosestquality = __webpack_require__(8494);
-      function defaultLoader({ config, src, width, quality }) {
-        if (
-          src.startsWith("/") &&
-          src.includes("?") &&
-          config.localPatterns?.length === 1 &&
-          config.localPatterns[0].pathname === "**" &&
-          config.localPatterns[0].search === ""
-        ) {
-          throw Object.defineProperty(
-            new Error(
-              `Image with src "${src}" is using a query string which is not configured in images.localPatterns.` +
-                `\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`
-            ),
-            "__NEXT_ERROR_CODE",
-            {
-              value: "E871",
-              enumerable: false,
-              configurable: true,
-            }
-          );
-        }
-        if (false) {
-        }
-        const q = (0, _findclosestquality.findClosestQuality)(quality, config);
-        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
-
-      /***/
-    },
-
-    /***/ 4292: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(7896);
-
-      /***/
-    },
-
-    /***/ 5999: /***/ (
-      __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/react@19.2.0/node_modules/react/jsx-runtime.js
-      var jsx_runtime = __webpack_require__(1503);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/image.js
-      var next_image = __webpack_require__(4292);
-      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;
-
-      /***/
-    },
-
-    /***/ 7896: /***/ (
-      __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__(3556);
-      const _imagecomponent = __webpack_require__(2728);
-      const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3744)
-      );
-      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: [32, 48, 64, 96, 128, 256, 384],
-            qualities: [75],
-            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
-
-      /***/
-    },
-
-    /***/ 8494: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "findClosestQuality", {
-        enumerable: true,
-        get: function () {
-          return findClosestQuality;
-        },
-      });
-      function findClosestQuality(quality, config) {
-        const q = quality || 75;
-        if (!config?.qualities?.length) {
-          return q;
-        }
-        return config.qualities.reduce(
-          (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),
-          0
-        );
-      } //# sourceMappingURL=find-closest-quality.js.map
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(797)
+      __webpack_exec__(4483)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,338 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 69: /***/ (module, exports, __webpack_require__) => {
+    /***/ 1511: /***/ (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__(2223);
+      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 (previously 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
+
+      /***/
+    },
+
+    /***/ 2025: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/link",
+        function () {
+          return __webpack_require__(4591);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 3267: /***/ (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__(2371);
+      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
+
+      /***/
+    },
+
+    /***/ 4591: /***/ (
+      __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__(1503);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(6929);
+      /* 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;
+
+      /***/
+    },
+
+    /***/ 6929: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(8885);
+
+      /***/
+    },
+
+    /***/ 7686: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "useIntersection", {
+        enumerable: true,
+        get: function () {
+          return useIntersection;
+        },
+      });
+      const _react = __webpack_require__(2223);
+      const _requestidlecallback = __webpack_require__(901);
+      const hasIntersectionObserver =
+        typeof IntersectionObserver === "function";
+      const observers = new Map();
+      const idList = [];
+      function createObserver(options) {
+        const id = {
+          root: options.root || null,
+          margin: options.rootMargin || "",
+        };
+        const existing = idList.find(
+          (obj) => obj.root === id.root && obj.margin === id.margin
+        );
+        let instance;
+        if (existing) {
+          instance = observers.get(existing);
+          if (instance) {
+            return instance;
+          }
+        }
+        const elements = new Map();
+        const observer = new IntersectionObserver((entries) => {
+          entries.forEach((entry) => {
+            const callback = elements.get(entry.target);
+            const isVisible =
+              entry.isIntersecting || entry.intersectionRatio > 0;
+            if (callback && isVisible) {
+              callback(isVisible);
+            }
+          });
+        }, options);
+        instance = {
+          id,
+          observer,
+          elements,
+        };
+        idList.push(id);
+        observers.set(id, instance);
+        return instance;
+      }
+      function observe(element, callback, options) {
+        const { id, observer, elements } = createObserver(options);
+        elements.set(element, callback);
+        observer.observe(element);
+        return function unobserve() {
+          elements.delete(element);
+          observer.unobserve(element);
+          // Destroy observer when there's nothing left to watch:
+          if (elements.size === 0) {
+            observer.disconnect();
+            observers.delete(id);
+            const index = idList.findIndex(
+              (obj) => obj.root === id.root && obj.margin === id.margin
+            );
+            if (index > -1) {
+              idList.splice(index, 1);
+            }
+          }
+        };
+      }
+      function useIntersection({ rootRef, rootMargin, disabled }) {
+        const isDisabled = disabled || !hasIntersectionObserver;
+        const [visible, setVisible] = (0, _react.useState)(false);
+        const elementRef = (0, _react.useRef)(null);
+        const setElement = (0, _react.useCallback)((element) => {
+          elementRef.current = element;
+        }, []);
+        (0, _react.useEffect)(() => {
+          if (hasIntersectionObserver) {
+            if (isDisabled || visible) return;
+            const element = elementRef.current;
+            if (element && element.tagName) {
+              const unobserve = observe(
+                element,
+                (isVisible) => isVisible && setVisible(isVisible),
+                {
+                  root: rootRef?.current,
+                  rootMargin,
+                }
+              );
+              return unobserve;
+            }
+          } else {
+            if (!visible) {
+              const idleCallback = (0,
+              _requestidlecallback.requestIdleCallback)(() => setVisible(true));
+              return () =>
+                (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
+            }
+          }
+          // eslint-disable-next-line react-hooks/exhaustive-deps
+        }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
+        const resetVisible = (0, _react.useCallback)(() => {
+          setVisible(false);
+        }, []);
+        return [setElement, visible, resetVisible];
+      }
+      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-intersection.js.map
+
+      /***/
+    },
+
+    /***/ 8101: /***/ (__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
+
+      /***/
+    },
+
+    /***/ 8885: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -28,17 +359,17 @@
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(2223)
       );
-      const _resolvehref = __webpack_require__(2275);
-      const _islocalurl = __webpack_require__(3179);
-      const _formaturl = __webpack_require__(5486);
-      const _utils = __webpack_require__(3708);
-      const _addlocale = __webpack_require__(8225);
-      const _routercontextsharedruntime = __webpack_require__(6046);
-      const _useintersection = __webpack_require__(2678);
-      const _getdomainlocale = __webpack_require__(4499);
-      const _addbasepath = __webpack_require__(7434);
-      const _usemergedref = __webpack_require__(2263);
-      const _erroronce = __webpack_require__(2197);
+      const _resolvehref = __webpack_require__(7379);
+      const _islocalurl = __webpack_require__(4843);
+      const _formaturl = __webpack_require__(9374);
+      const _utils = __webpack_require__(3116);
+      const _addlocale = __webpack_require__(8065);
+      const _routercontextsharedruntime = __webpack_require__(5470);
+      const _useintersection = __webpack_require__(7686);
+      const _getdomainlocale = __webpack_require__(3267);
+      const _addbasepath = __webpack_require__(1450);
+      const _usemergedref = __webpack_require__(1511);
+      const _erroronce = __webpack_require__(8101);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -416,344 +747,13 @@
 
       /***/
     },
-
-    /***/ 2197: /***/ (__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
-
-      /***/
-    },
-
-    /***/ 2263: /***/ (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__(2223);
-      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 (previously 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
-
-      /***/
-    },
-
-    /***/ 2369: /***/ (
-      __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__(1503);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(6691);
-      /* 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;
-
-      /***/
-    },
-
-    /***/ 2678: /***/ (module, exports, __webpack_require__) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "useIntersection", {
-        enumerable: true,
-        get: function () {
-          return useIntersection;
-        },
-      });
-      const _react = __webpack_require__(2223);
-      const _requestidlecallback = __webpack_require__(4213);
-      const hasIntersectionObserver =
-        typeof IntersectionObserver === "function";
-      const observers = new Map();
-      const idList = [];
-      function createObserver(options) {
-        const id = {
-          root: options.root || null,
-          margin: options.rootMargin || "",
-        };
-        const existing = idList.find(
-          (obj) => obj.root === id.root && obj.margin === id.margin
-        );
-        let instance;
-        if (existing) {
-          instance = observers.get(existing);
-          if (instance) {
-            return instance;
-          }
-        }
-        const elements = new Map();
-        const observer = new IntersectionObserver((entries) => {
-          entries.forEach((entry) => {
-            const callback = elements.get(entry.target);
-            const isVisible =
-              entry.isIntersecting || entry.intersectionRatio > 0;
-            if (callback && isVisible) {
-              callback(isVisible);
-            }
-          });
-        }, options);
-        instance = {
-          id,
-          observer,
-          elements,
-        };
-        idList.push(id);
-        observers.set(id, instance);
-        return instance;
-      }
-      function observe(element, callback, options) {
-        const { id, observer, elements } = createObserver(options);
-        elements.set(element, callback);
-        observer.observe(element);
-        return function unobserve() {
-          elements.delete(element);
-          observer.unobserve(element);
-          // Destroy observer when there's nothing left to watch:
-          if (elements.size === 0) {
-            observer.disconnect();
-            observers.delete(id);
-            const index = idList.findIndex(
-              (obj) => obj.root === id.root && obj.margin === id.margin
-            );
-            if (index > -1) {
-              idList.splice(index, 1);
-            }
-          }
-        };
-      }
-      function useIntersection({ rootRef, rootMargin, disabled }) {
-        const isDisabled = disabled || !hasIntersectionObserver;
-        const [visible, setVisible] = (0, _react.useState)(false);
-        const elementRef = (0, _react.useRef)(null);
-        const setElement = (0, _react.useCallback)((element) => {
-          elementRef.current = element;
-        }, []);
-        (0, _react.useEffect)(() => {
-          if (hasIntersectionObserver) {
-            if (isDisabled || visible) return;
-            const element = elementRef.current;
-            if (element && element.tagName) {
-              const unobserve = observe(
-                element,
-                (isVisible) => isVisible && setVisible(isVisible),
-                {
-                  root: rootRef?.current,
-                  rootMargin,
-                }
-              );
-              return unobserve;
-            }
-          } else {
-            if (!visible) {
-              const idleCallback = (0,
-              _requestidlecallback.requestIdleCallback)(() => setVisible(true));
-              return () =>
-                (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
-            }
-          }
-          // eslint-disable-next-line react-hooks/exhaustive-deps
-        }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
-        const resetVisible = (0, _react.useCallback)(() => {
-          setVisible(false);
-        }, []);
-        return [setElement, visible, resetVisible];
-      }
-      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-intersection.js.map
-
-      /***/
-    },
-
-    /***/ 4499: /***/ (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__(1379);
-      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
-
-      /***/
-    },
-
-    /***/ 6691: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(69);
-
-      /***/
-    },
-
-    /***/ 6771: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function () {
-          return __webpack_require__(2369);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(6771)
+      __webpack_exec__(2025)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,7 +1,34 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [188],
   {
-    /***/ 97: /***/ (
+    /***/ 417: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/routerDirect",
+        function () {
+          return __webpack_require__(5491);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 1840: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(3252);
+
+      /***/
+    },
+
+    /***/ 5491: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -16,7 +43,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7798);
+        __webpack_require__(1840);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -35,40 +62,13 @@
 
       /***/
     },
-
-    /***/ 4283: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/routerDirect",
-        function () {
-          return __webpack_require__(97);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7798: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(9300);
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4283)
+      __webpack_exec__(417)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,17 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 5964: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(2010);
-
-      /***/
-    },
-
-    /***/ 7758: /***/ (
+    /***/ 1312: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(5964);
+        __webpack_require__(2398);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -59,7 +49,17 @@
       /***/
     },
 
-    /***/ 8803: /***/ (
+    /***/ 2398: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(8954);
+
+      /***/
+    },
+
+    /***/ 4305: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -67,7 +67,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/script",
         function () {
-          return __webpack_require__(7758);
+          return __webpack_require__(1312);
         },
       ]);
       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__(8803)
+      __webpack_exec__(4305)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3263],
   {
-    /***/ 184: /***/ (
+    /***/ 358: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -16,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7798);
+        __webpack_require__(1840);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -35,7 +35,17 @@
       /***/
     },
 
-    /***/ 3163: /***/ (
+    /***/ 1840: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(3252);
+
+      /***/
+    },
+
+    /***/ 4041: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -43,7 +53,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/withRouter",
         function () {
-          return __webpack_require__(184);
+          return __webpack_require__(358);
         },
       ]);
       if (false) {
@@ -51,23 +61,13 @@
 
       /***/
     },
-
-    /***/ 7798: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(9300);
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(3163)
+      __webpack_exec__(4041)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 436-HASH.js

Diff too large to display

Diff for 9760-HASH.js
failed to diff
Diff for main-HASH.js

Diff too large to display

Diff for main-app-HASH.js
@@ -1,64 +1,64 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4977],
   {
-    /***/ 2017: /***/ (
+    /***/ 2788: /***/ () => {
+      /* (ignored) */
+      /***/
+    },
+
+    /***/ 3709: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7126, 23)
+        __webpack_require__.t.bind(__webpack_require__, 844, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 4031, 23)
+        __webpack_require__.t.bind(__webpack_require__, 4365, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1117, 23)
+        __webpack_require__.t.bind(__webpack_require__, 3903, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1522, 23)
+        __webpack_require__.t.bind(__webpack_require__, 3100, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1798, 23)
+        __webpack_require__.t.bind(__webpack_require__, 7364, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 8366, 23)
+        __webpack_require__.t.bind(__webpack_require__, 5632, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6571, 23)
+        __webpack_require__.t.bind(__webpack_require__, 8889, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 596, 23)
+        __webpack_require__.t.bind(__webpack_require__, 9958, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1321, 23)
+        __webpack_require__.t.bind(__webpack_require__, 7839, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 724, 23)
+        __webpack_require__.t.bind(__webpack_require__, 1270, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6999, 23)
+        __webpack_require__.t.bind(__webpack_require__, 1885, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 854)
+        __webpack_require__.bind(__webpack_require__, 4088)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7752, 23)
+        __webpack_require__.t.bind(__webpack_require__, 9622, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1201, 23)
+        __webpack_require__.t.bind(__webpack_require__, 995, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7823, 23)
+        __webpack_require__.t.bind(__webpack_require__, 8577, 23)
       );
 
       /***/
     },
-
-    /***/ 7854: /***/ () => {
-      /* (ignored) */
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
@@ -66,8 +66,8 @@
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(
       0,
-      [9137, 9760],
-      () => (__webpack_exec__(4730), __webpack_exec__(2017))
+      [2494, 4936],
+      () => (__webpack_exec__(204), __webpack_exec__(3709))
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Commit: c767498

@sokra sokra force-pushed the sokra/refactor-session-dependent-dirty-3 branch from 802e6a7 to 47f1762 Compare November 13, 2025 09:25
@sokra sokra force-pushed the sokra/refactor-session-dependent-dirty-5 branch from d11fbac to c767498 Compare November 13, 2025 09:25
task.remove(&CachedDataItemKey::Activeness {});
}
}

Copy link
Contributor

Choose a reason for hiding this comment

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

The variable dirty_changed is used but never defined in the refactored code, causing a compilation error.

View Details
📝 Patch Details
diff --git a/turbopack/crates/turbo-tasks-backend/src/backend/mod.rs b/turbopack/crates/turbo-tasks-backend/src/backend/mod.rs
index b91647b00b..9300183a68 100644
--- a/turbopack/crates/turbo-tasks-backend/src/backend/mod.rs
+++ b/turbopack/crates/turbo-tasks-backend/src/backend/mod.rs
@@ -2376,6 +2376,8 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
             }
         }
 
+        #[cfg(feature = "verify_determinism")]
+        let dirty_changed = old_dirtyness != new_dirtyness;
         #[cfg(feature = "verify_determinism")]
         let reschedule = (dirty_changed || no_output_set) && !task_id.is_transient();
         #[cfg(not(feature = "verify_determinism"))]

Analysis

Missing dirty_changed variable definition causes compilation error with verify_determinism feature

What fails: The task_execution_completed_finish() method in turbopack/crates/turbo-tasks-backend/src/backend/mod.rs references an undefined variable dirty_changed on line 2380, causing a compilation error when the verify_determinism feature is enabled.

How to reproduce:

cd turbopack
cargo check --package turbo-tasks-backend --features verify_determinism

Result: Compilation fails with:

error[E0425]: cannot find value `dirty_changed` in this scope
    --> turbopack/crates/turbo-tasks-backend/src/backend/mod.rs:2380:27
     |
2380 |         let reschedule = (dirty_changed || no_output_set) && !task_id.is_transient();
     |                           ^^^^^^^^^^^^^ not found in this scope

Expected: The code compiles successfully. The variable dirty_changed should be defined as old_dirtyness != new_dirtyness to track whether the dirty state changed, which is the logical intent given that the code computes both old_dirtyness (line ~2282) and new_dirtyness (lines 2308-2318) and checks their equality on line 2320.

Fix: Added the missing variable definition guarded by the same #[cfg(feature = "verify_determinism")] attribute as its usage:

#[cfg(feature = "verify_determinism")]
let dirty_changed = old_dirtyness != new_dirtyness;

@sokra sokra force-pushed the sokra/refactor-session-dependent-dirty-5 branch from c767498 to 6d0aa8e Compare November 14, 2025 06:21
@sokra sokra force-pushed the sokra/refactor-session-dependent-dirty-3 branch from 47f1762 to 97641de Compare November 14, 2025 06:21
@sokra sokra force-pushed the sokra/refactor-session-dependent-dirty-3 branch from 97641de to d12f4e9 Compare November 18, 2025 08:19
@sokra sokra force-pushed the sokra/refactor-session-dependent-dirty-5 branch from 6d0aa8e to 089131d Compare November 18, 2025 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Bypass Graphite Optimization Ignore Graphite CI optimizations, run the full CI suite. https://graphite.dev/docs/stacking-and-ci 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.

3 participants