Skip to content

Conversation

@lukesandberg
Copy link
Contributor

@lukesandberg lukesandberg commented Aug 2, 2025

Optimize ESM Exports

What

This builds on the work from #82214

For an esm module like

export const foo = 2;

turbopack will generate a factory function like

__turbopack_context__ => {
  __turbopack_context__.s(['foo', ()=>foo]);
  const foo = 2;
}
  • we expose the exports early to enable circular imports between modules
  • we expose as 'getter functions' to enable live bindings

These behaviors are necessary to uphold the ESM specification, however, we can optimize it by avoiding getter functions most of the time


  const foo = 2;
__turbopack_context__ => {
  __turbopack_context__.s(['foo', 0, foo]);
}

If we can statically detect that the module is not part of an import cycle then we can delay registering its exports until the end of evaluation. Then if we also determine that a given export is never mutated (after module evaluation) then we can export it as a value instead of a getter.

We use a small numeric discriminator flag this to the runtime (otherwise exporting a function is ambiguous).

This approach will save code size (2 bytes per const binding), memory (no functions to allocate), and improve parsing and execution performance.

To do this analysis I added new logic in the analyzer to classify the kinds of assignments that variables receive. If the only assignments are from the root scope, then the export is not 'live'. In theory we could improve this to allow some assignments from other scopes (if those functions are only called from the root scope), but this current approach covers the vast majority of usecases (notably export function foo and export default function bar)

I also added an optimization for 're-exports' to shift creating the getters and setters to the runtime.

Performance

Benchmark Results: CHANGE vs HEAD (Median Values)

Scenario Metric HEAD (ms) CHANGE (ms) Speedup % Improvement
Client CommonJS Load Duration 19.80 19.60 1.01x +1.0% ✅
Execute Duration 19.30 19.00 1.02x +1.6% ✅
Client ESM Load Duration 18.15 17.70 1.03x +2.5% ✅
Execute Duration 46.85 27.95 1.68x +40.3% ✅
Pages API CommonJS Load Duration 19.41 19.52 0.99x -0.6% ❌
Execute Duration 25.34 25.15 1.01x +0.7% ✅
Pages API ESM Load Duration 26.02 22.08 1.18x +15.1% ✅
Execute Duration 56.30 35.12 1.60x +37.6% ✅

As expected this is a substantial improvement to ESM. The CJS results are just noise and should provide an idea of the variance of the run.

Load time improves due to smaller and simpler code
Execution time improves since there are fewer function objects to construct

Closes PACK-5587

@ijjk ijjk added created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js. labels Aug 2, 2025
Copy link
Contributor Author

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

@lukesandberg lukesandberg changed the title handle const [turbopack] don't bind getters for const exports Aug 2, 2025
@ijjk
Copy link
Member

ijjk commented Aug 2, 2025

Failing test suites

Commit: a86d64d

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

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

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

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

Expected: 404
Received: 500

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

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

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

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

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

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

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

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

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

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

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

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

Expected: {}
Received: false

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

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

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

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

Expected: {}
Received: false

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

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

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

pnpm test test/integration/app-dir-export/test/dev-custom-dist-dir.test.ts (turbopack)

  • app dir - with output export and custom distDir (next dev) > should render properly
Expand output

● app dir - with output export and custom distDir (next dev) › should render properly

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

Expected: 200
Received: 500

  31 |   it('should render properly', async () => {
  32 |     const res = await fetchViaHTTP(appPort, '/')
> 33 |     expect(res.status).toBe(200)
     |                        ^
  34 |     expect(await res.text()).toContain('Home')
  35 |   })
  36 | })

  at Object.toBe (integration/app-dir-export/test/dev-custom-dist-dir.test.ts:33:24)

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

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

  • Catches Missing getStaticProps > development mode > should catch it in development mode
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=\"\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__58e1801b._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules__pnpm_3b978ab4._.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_36ff54d9._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__f5ebff38._.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_503a90f7._.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\":\"./packages/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js:28:17\\nModule not found: Can't resolve '../../../client/router'\\n  26 | const _nextdevtools = require(\\\"next/dist/compiled/next-devtools\\\");\\n  27 | const _hydrationerrorstate = require(\\\"./hydration-error-state\\\");\\n\\u003e 28 | const _router = require(\\\"../../../client/router\\\");\\n     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n  29 | const _stitchederror = require(\\\"../app/errors/stitched-error\\\");\\n  30 | const _onrecoverableerror = require(\\\"../../../client/react-client-callbacks/on-recoverable-error\\\");\\n  31 | const _pagesdevoverlayerrorboundary = require(\\\"./pages-dev-overlay-error-boundary\\\");\\n\\nnot in a function\\n\\nDebug info:\\n- Execution of \\u003cModuleAssetContext as AssetContext\\u003e::process_resolve_result failed\\n- Execution of apply_module_type failed\\n- Execution of *EcmascriptExports::split_locals_and_reexports failed\\n- Execution of \\u003cEcmascriptModuleAsset as EcmascriptChunkPlaceable\\u003e::get_exports failed\\n- Execution of analyse_ecmascript_module failed\\n- not in a function\\n\\n\\nImport trace:\\n  Browser:\\n    ./packages/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js\\n    ./packages/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js\\n    ./packages/next/dist/client/page-bootstrap.js\\n    ./packages/next/dist/client/next-dev-turbopack.js\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\n\",\"stack\":\"Error: ./packages/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js:28:17\\nModule not found: Can't resolve '../../../client/router'\\n\\u001b[0m \\u001b[90m 26 |\\u001b[39m \\u001b[36mconst\\u001b[39m _nextdevtools \\u001b[33m=\\u001b[39m require(\\u001b[32m\\\"next/dist/compiled/next-devtools\\\"\\u001b[39m)\\u001b[33m;\\u001b[39m\\n \\u001b[90m 27 |\\u001b[39m \\u001b[36mconst\\u001b[39m _hydrationerrorstate \\u001b[33m=\\u001b[39m require(\\u001b[32m\\\"./hydration-error-state\\\"\\u001b[39m)\\u001b[33m;\\u001b[39m\\n\\u001b[31m\\u001b[1m\\u003e\\u001b[22m\\u001b[39m\\u001b[90m 28 |\\u001b[39m \\u001b[36mconst\\u001b[39m _router \\u001b[33m=\\u001b[39m require(\\u001b[32m\\\"../../../client/router\\\"\\u001b[39m)\\u001b[33m;\\u001b[39m\\n \\u001b[90m    |\\u001b[39m                 \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\n \\u001b[90m 29 |\\u001b[39m \\u001b[36mconst\\u001b[39m _stitchederror \\u001b[33m=\\u001b[39m require(\\u001b[32m\\\"../app/errors/stitched-error\\\"\\u001b[39m)\\u001b[33m;\\u001b[39m\\n \\u001b[90m 30 |\\u001b[39m \\u001b[36mconst\\u001b[39m _onrecoverableerror \\u001b[33m=\\u001b[39m require(\\u001b[32m\\\"../../../client/react-client-callbacks/on-recoverable-error\\\"\\u001b[39m)\\u001b[33m;\\u001b[39m\\n \\u001b[90m 31 |\\u001b[39m \\u001b[36mconst\\u001b[39m _pagesdevoverlayerrorboundary \\u001b[33m=\\u001b[39m require(\\u001b[32m\\\"./pages-dev-overlay-error-boundary\\\"\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\nnot in a function\\n\\nDebug info:\\n- Execution of \\u003cModuleAssetContext as AssetContext\\u003e::process_resolve_result failed\\n- Execution of apply_module_type failed\\n- Execution of *EcmascriptExports::split_locals_and_reexports failed\\n- Execution of \\u003cEcmascriptModuleAsset as EcmascriptChunkPlaceable\\u003e::get_exports failed\\n- Execution of analyse_ecmascript_module failed\\n- not in a function\\n\\n\\nImport trace:\\n  Browser:\\n    ./packages/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js\\n    ./packages/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js\\n    ./packages/next/dist/client/page-bootstrap.js\\n    ./packages/next/dist/client/next-dev-turbopack.js\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\n\\n    at Object.getCompilationErrors (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/hot-reloader-turbopack.js:775:59)\\n    at DevBundlerService.getCompilationError (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/lib/dev-bundler-service.js:39:55)\\n    at DevServer.getCompilationError (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:720:42)\\n    at DevServer.findPageComponents (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/dev/next-dev-server.js:690:43)\\n    at async DevServer.renderErrorToResponseImpl (/root/actions-runner/_work/next.js/next.js/packages/next/dist/server/base-server.js:1687:26)\"},\"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.js:25:22)

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

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

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

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

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

Expected: 200
Received: 500

  22 |       method: 'GET',
  23 |     })
> 24 |     expect(res.status).toEqual(200)
     |                        ^
  25 |   })
  26 |
  27 |   it('should return the BigInt result text', async () => {

  at Object.toEqual (integration/bigint/test/index.test.js:24:24)

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

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

Expected: "3"
Received: false

  29 |       method: 'GET',
  30 |     }).then((res) => res.ok && res.text())
> 31 |     expect(resText).toEqual('3')
     |                     ^
  32 |   })
  33 | }
  34 |

  at Object.toEqual (integration/bigint/test/index.test.js:31:21)

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

pnpm test test/integration/app-types/app-types.test.js (turbopack)

  • app type checking - production mode > should report link errors
  • app type checking - production mode > should generate route types correctly and report router API errors
  • app type checking - production mode > should generate route types correctly and report form errors
Expand output

● app type checking - production mode › should report link errors

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

Matcher error: received value must not be null nor undefined

Received has value: undefined

  27 |
  28 |     // Check type checking errors
> 29 |     expect(errors).toContain(
     |                    ^
  30 |       'Type error: "/(newroot)/dashboard/another" is not an existing route. If it is intentional, please type it explicitly with `as Route`.'
  31 |     )
  32 |

  at Object.toContain (integration/app-types/app-types.test.js:29:20)

● app type checking - production mode › should generate route types correctly and report router API errors

TypeError: Cannot read properties of undefined (reading 'matchAll')

  46 |     // Make sure all errors were reported and other links passed type checking
  47 |     const errorLines = [
> 48 |       ...errors.matchAll(
     |                 ^
  49 |         /\.\/src\/app\/type-checks\/router\/page\.tsx:(\d+):/g
  50 |       ),
  51 |     ].map(([, line]) => +line)

  at Object.matchAll (integration/app-types/app-types.test.js:48:17)

● app type checking - production mode › should generate route types correctly and report form errors

TypeError: Cannot read properties of undefined (reading 'matchAll')

  61 |     // Make sure all errors were reported and other Forms passed type checking
  62 |     const errorLines = [
> 63 |       ...errors.matchAll(/\.\/src\/app\/type-checks\/form\/page\.tsx:(\d+):/g),
     |                 ^
  64 |     ].map(([, line]) => +line)
  65 |
  66 |     const ST = 8

  at Object.matchAll (integration/app-types/app-types.test.js:63:17)

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

pnpm test-start-turbo test/e2e/app-dir/actions/app-action-form-state-node-middleware.test.ts (turbopack)

  • app-dir action useActionState > should support submitting form state with JS
  • app-dir action useActionState > should support submitting form state without JS
  • app-dir action useActionState > should support hydrating the app from progressively enhanced form request
  • app-dir action useActionState > should send the action to the provided permalink with form state when JS disabled
Expand output

● app-dir action useActionState › should support submitting form state with JS

next build failed with code/signal 1

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

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

● app-dir action useActionState › should support submitting form state without JS

next build failed with code/signal 1

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

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

● app-dir action useActionState › should support hydrating the app from progressively enhanced form request

next build failed with code/signal 1

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

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

● app-dir action useActionState › should send the action to the provided permalink with form state when JS disabled

next build failed with code/signal 1

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

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

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

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

  • app-dir action handling - next export > should error when use export output for server actions
Expand output

● app-dir action handling - next export › should error when use export output for server actions

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

Expected substring: "Server Actions are not supported with static export."
Received string:    "   ▲ Next.js 15.4.2-canary.52 (Turbopack)·
   Creating an optimized production build ...·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
Failed to write page endpoint /_error·
Caused by:
- not in a function·
Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries_operation failed
- Execution of *all_assets_from_entries failed
- Execution of output_assets_operation failed
- Execution of <PageEndpoint as Endpoint>::output failed
- Failed to write page endpoint /_error
- Execution of PageEndpoint::output failed
- Execution of PageEndpoint::client_chunks failed
- Execution of *ChunkingContext::evaluated_chunk_group failed
- Execution of Project::client_chunking_context failed
- Execution of *get_client_chunking_context failed
- Execution of Project::module_ids failed
- Execution of Project::whole_app_module_graphs failed
- Execution of whole_app_module_graph_operation failed
- Execution of *ModuleGraph::from_single_graph failed
- Execution of *SingleModuleGraph::new_with_entries failed
- Execution of Project::get_all_entries failed
- Execution of <MiddlewareEndpoint as Endpoint>::entries failed
- Execution of wrap_edge_entry failed
- Execution of *ProcessResult::module failed
- Execution of apply_module_type failed
- Execution of *EcmascriptExports::split_locals_and_reexports failed
- Execution of <EcmascriptModuleAsset as EcmascriptChunkPlaceable>::get_exports failed
- Execution of analyse_ecmascript_module failed
- not in a function·
> Build error occurred
Error [TurbopackInternalError]: Failed to write page endpoint /_error·
Caused by:
- not in a function·
Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries_operation failed
- Execution of *all_assets_from_entries failed
- Execution of output_assets_operation failed
- Execution of <PageEndpoint as Endpoint>::output failed
- Failed to write page endpoint /_error
- Execution of PageEndpoint::output failed
- Execution of PageEndpoint::client_chunks failed
- Execution of *ChunkingContext::evaluated_chunk_group failed
- Execution of Project::client_chunking_context failed
- Execution of *get_client_chunking_context failed
- Execution of Project::module_ids failed
- Execution of Project::whole_app_module_graphs failed
- Execution of whole_app_module_graph_operation failed
- Execution of *ModuleGraph::from_single_graph failed
- Execution of *SingleModuleGraph::new_with_entries failed
- Execution of Project::get_all_entries failed
- Execution of <MiddlewareEndpoint as Endpoint>::entries failed
- Execution of wrap_edge_entry failed
- Execution of *ProcessResult::module failed
- Execution of apply_module_type failed
- Execution of *EcmascriptExports::split_locals_and_reexports failed
- Execution of <EcmascriptModuleAsset as EcmascriptChunkPlaceable>::get_exports failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: Failed to write page endpoint /_error) {
  type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
}
"

  36 |
  37 |   it('should error when use export output for server actions', async () => {
> 38 |     expect(next.cliOutput).toContain(
     |                            ^
  39 |       `Server Actions are not supported with static export.`
  40 |     )
  41 |   })

  at Object.toContain (e2e/app-dir/actions/app-action-export.test.ts:38:28)

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

pnpm test-start-turbo test/e2e/app-dir/app-routes-trailing-slash/app-routes-trailing-slash.test.ts (turbopack)

  • app-routes-trailing-slash > should handle trailing slash for edge runtime
  • app-routes-trailing-slash > should handle trailing slash for node runtime
Expand output

● app-routes-trailing-slash › should handle trailing slash for edge runtime

next build failed with code/signal 1

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

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

● app-routes-trailing-slash › should handle trailing slash for node runtime

next build failed with code/signal 1

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

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

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

pnpm test-dev-turbo test/development/app-dir/cache-components-dev-warmup/cache-components.dev-warmup.test.ts (turbopack)

  • cache-components-dev-warmup > logs with Prerender or Server environment depending based on whether the timing of when the log runs relative to this environment boundary
Expand output

● cache-components-dev-warmup › logs with Prerender or Server environment depending based on whether the timing of when the log runs relative to this environment boundary

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

Expected: ArrayContaining [StringMatching /^(?=.*\bafter layout cache read\b)(?=.*\bPrerender\b).*/]
Received: ["Failed to load resource: the server responded with a status of 500 (Internal Server Error)"]

  11 |     environment: string
  12 |   ) {
> 13 |     expect(logs.map((l) => l.message)).toEqual(
     |                                        ^
  14 |       expect.arrayContaining([
  15 |         expect.stringMatching(
  16 |           new RegExp(`^(?=.*\\b${message}\\b)(?=.*\\b${environment}\\b).*`)

  at toEqual (development/app-dir/cache-components-dev-warmup/cache-components.dev-warmup.test.ts:13:40)
  at Object.assertLog (development/app-dir/cache-components-dev-warmup/cache-components.dev-warmup.test.ts:26:5)

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

pnpm test-start-turbo test/e2e/app-dir/app-edge-root-layout/index.test.ts (turbopack)

  • app-dir edge runtime root layout > should not emit metadata files into bad paths
  • app-dir edge runtime root layout > should mark static contain metadata routes as edge functions
Expand output

● app-dir edge runtime root layout › should not emit metadata files into bad paths

next build failed with code/signal 1

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

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

● app-dir edge runtime root layout › should mark static contain metadata routes as edge functions

next build failed with code/signal 1

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

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

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

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

  • app-dir edge SSR > should handle edge only routes
  • app-dir edge SSR > should retrieve cookies in a server component in the edge runtime
  • app-dir edge SSR > should treat process as object without polyfill in edge runtime
  • app-dir edge SSR > should handle /index routes correctly
  • app-dir edge SSR > should generate matchers correctly in middleware manifest
Expand output

● app-dir edge SSR › should handle edge only routes

next build failed with code/signal 1

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

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

● app-dir edge SSR › should retrieve cookies in a server component in the edge runtime

next build failed with code/signal 1

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

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

● app-dir edge SSR › should treat process as object without polyfill in edge runtime

next build failed with code/signal 1

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

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

● app-dir edge SSR › should handle /index routes correctly

next build failed with code/signal 1

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

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

● app-dir edge SSR › should generate matchers correctly in middleware manifest

next build failed with code/signal 1

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

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

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

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

  • app-dir action handling > should handle actions correctly after navigation / redirection events
  • app-dir action handling > should handle actions correctly after following a relative link
Expand output

● app-dir action handling › should handle actions correctly after navigation / redirection events

next build failed with code/signal 1

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

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

● app-dir action handling › should handle actions correctly after following a relative link

next build failed with code/signal 1

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

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

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

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

  • Auto Export _error bail > production mode > should not opt-out of auto static optimization from invalid _error
Expand output

● Auto Export _error bail › production mode › should not opt-out of auto static optimization from invalid _error

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

Expected: 0
Received: 1

  19 |     const combinedOutput = output.stderr + output.stdout
  20 |
> 21 |     expect(output.code).toBe(0)
     |                         ^
  22 |     expect(combinedOutput).not.toContain(
  23 |       'You have opted-out of Automatic Static Optimization due to'
  24 |     )

  at Object.toBe (integration/auto-export-error-bail/test/index.test.js:21:25)

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

pnpm test-start-turbo test/e2e/app-dir/app-routes/app-custom-route-base-path.test.ts (turbopack)

  • app-custom-routes > automatic implementations > implements HEAD on routes with GET already implemented
  • app-custom-routes > automatic implementations > implements OPTIONS on routes
  • app-custom-routes > basic fetch request with a response > abort via a DELETE request > aborts without error on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a DELETE request > aborts without error on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a GET request > aborts without error on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a GET request > aborts without error on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a PATCH request > aborts without error on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a PATCH request > aborts without error on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a POST request > aborts without error on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a POST request > aborts without error on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a PUT request > aborts without error on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > abort via a PUT request > aborts without error on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > made via a DELETE request > responds correctly on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > made via a DELETE request > responds correctly on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > made via a GET request > responds correctly on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > made via a GET request > responds correctly on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > made via a PATCH request > responds correctly on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > made via a PATCH request > responds correctly on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > made via a POST request > responds correctly on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > made via a POST request > responds correctly on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > made via a PUT request > responds correctly on /basic/endpoint
  • app-custom-routes > basic fetch request with a response > made via a PUT request > responds correctly on /basic/vercel/endpoint
  • app-custom-routes > basic fetch request with a response > request > can read query parameters
  • app-custom-routes > basic fetch request with a response > request > can read query parameters (edge)
  • app-custom-routes > basic fetch request with a response > response > supports the NextResponse.redirect() helper
  • app-custom-routes > basic fetch request with a response > response > supports the NextResponse.json() helper
  • app-custom-routes > basic fetch request with a response > route groups > routes to the correct handler
  • app-custom-routes > body > can handle handle a streaming request and streaming response
  • app-custom-routes > body > can handle handle a streaming request and streaming response (edge)
  • app-custom-routes > body > can read a JSON encoded body
  • app-custom-routes > body > can read a JSON encoded body (edge)
  • app-custom-routes > body > can read a JSON encoded body for DELETE requests
  • app-custom-routes > body > can read a JSON encoded body for OPTIONS requests
  • app-custom-routes > body > can read a streamed JSON encoded body
  • app-custom-routes > body > can read a streamed JSON encoded body (edge)
  • app-custom-routes > body > can read the text body
  • app-custom-routes > body > can read the text body (edge)
  • app-custom-routes > context > provides params to routes with dynamic parameters
  • app-custom-routes > context > provides params to routes with catch-all routes
  • app-custom-routes > context > does not provide params to routes without dynamic parameters
  • app-custom-routes > customized metadata routes > should work if conflict with metadata routes convention
  • app-custom-routes > dynamic = "force-static" > strips search, headers, and domain from request
  • app-custom-routes > edge functions > returns response using edge runtime
  • app-custom-routes > edge functions > returns a response when headers are accessed
  • app-custom-routes > error conditions > responds with 400 (Bad Request) when the requested method is not a valid HTTP method
  • app-custom-routes > error conditions > responds with 405 (Method Not Allowed) when method is not implemented
  • app-custom-routes > error conditions > responds with 500 (Internal Server Error) when the handler throws an error
  • app-custom-routes > error conditions > responds with 500 (Internal Server Error) when the handler calls NextResponse.next()
  • app-custom-routes > hooks > (await cookies()).has() > gets the correct values
  • app-custom-routes > hooks > cookies > gets the correct values
  • app-custom-routes > hooks > headers > gets the correct values
  • app-custom-routes > hooks > notFound > can respond correctly in nodejs
  • app-custom-routes > hooks > notFound > can respond correctly in edge
  • app-custom-routes > hooks > permanentRedirect > can respond correctly
  • app-custom-routes > hooks > redirect > can respond correctly
  • app-custom-routes > hooks > req.cookies > gets the correct values
  • app-custom-routes > no bundle error > should not print bundling warning about React
  • app-custom-routes > no response returned > should print an error when no response is returned
  • app-custom-routes > works with api prefix correctly > statically generates correctly with no dynamic usage
  • app-custom-routes > works with api prefix correctly > does not statically generate with dynamic usage
  • app-custom-routes > works with generateStaticParams correctly > responds correctly on /static/first/data.json
  • app-custom-routes > works with generateStaticParams correctly > responds correctly on /static/second/data.json
  • app-custom-routes > works with generateStaticParams correctly > responds correctly on /static/three/data.json
  • app-custom-routes > works with generateStaticParams correctly > revalidates correctly on /revalidate-1/first/data.json
  • app-custom-routes > works with generateStaticParams correctly > revalidates correctly on /revalidate-1/second/data.json
  • app-custom-routes > works with generateStaticParams correctly > revalidates correctly on /revalidate-1/three/data.json
Expand output

● app-custom-routes › works with api prefix correctly › statically generates correctly with no dynamic usage

next build failed with code/signal 1

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

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

● app-custom-routes › works with api prefix correctly › does not statically generate with dynamic usage

next build failed with code/signal 1

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

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

● app-custom-routes › works with generateStaticParams correctly › responds correctly on /static/first/data.json

next build failed with code/signal 1

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

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

● app-custom-routes › works with generateStaticParams correctly › responds correctly on /static/second/data.json

next build failed with code/signal 1

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

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

● app-custom-routes › works with generateStaticParams correctly › responds correctly on /static/three/data.json

next build failed with code/signal 1

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

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

● app-custom-routes › works with generateStaticParams correctly › revalidates correctly on /revalidate-1/first/data.json

next build failed with code/signal 1

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

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

● app-custom-routes › works with generateStaticParams correctly › revalidates correctly on /revalidate-1/second/data.json

next build failed with code/signal 1

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

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

● app-custom-routes › works with generateStaticParams correctly › revalidates correctly on /revalidate-1/three/data.json

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a GET request › responds correctly on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a GET request › responds correctly on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a POST request › responds correctly on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a POST request › responds correctly on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a PUT request › responds correctly on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a PUT request › responds correctly on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a DELETE request › responds correctly on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a DELETE request › responds correctly on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a PATCH request › responds correctly on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › made via a PATCH request › responds correctly on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a GET request › aborts without error on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a GET request › aborts without error on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a POST request › aborts without error on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a POST request › aborts without error on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a PUT request › aborts without error on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a PUT request › aborts without error on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a DELETE request › aborts without error on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a DELETE request › aborts without error on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a PATCH request › aborts without error on /basic/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › abort via a PATCH request › aborts without error on /basic/vercel/endpoint

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › route groups › routes to the correct handler

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › request › can read query parameters

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › request › can read query parameters (edge)

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › response › supports the NextResponse.rewrite() helper

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › response › supports the NextResponse.redirect() helper

next build failed with code/signal 1

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

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

● app-custom-routes › basic fetch request with a response › response › supports the NextResponse.json() helper

next build failed with code/signal 1

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

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

● app-custom-routes › body › can handle handle a streaming request and streaming response

next build failed with code/signal 1

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

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

● app-custom-routes › body › can handle handle a streaming request and streaming response (edge)

next build failed with code/signal 1

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

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

● app-custom-routes › body › can read a JSON encoded body

next build failed with code/signal 1

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

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

● app-custom-routes › body › can read a JSON encoded body (edge)

next build failed with code/signal 1

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

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

● app-custom-routes › body › can read a JSON encoded body for DELETE requests

next build failed with code/signal 1

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

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

● app-custom-routes › body › can read a JSON encoded body for OPTIONS requests

next build failed with code/signal 1

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

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

● app-custom-routes › body › can read a streamed JSON encoded body

next build failed with code/signal 1

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

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

● app-custom-routes › body › can read a streamed JSON encoded body (edge)

next build failed with code/signal 1

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

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

● app-custom-routes › body › can read the text body

next build failed with code/signal 1

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

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

● app-custom-routes › body › can read the text body (edge)

next build failed with code/signal 1

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

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

● app-custom-routes › context › provides params to routes with dynamic parameters

next build failed with code/signal 1

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

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

● app-custom-routes › context › provides params to routes with catch-all routes

next build failed with code/signal 1

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

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

● app-custom-routes › context › does not provide params to routes without dynamic parameters

next build failed with code/signal 1

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

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

● app-custom-routes › hooks › headers › gets the correct values

next build failed with code/signal 1

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

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

● app-custom-routes › hooks › cookies › gets the correct values

next build failed with code/signal 1

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

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

● app-custom-routes › hooks › req.cookies › gets the correct values

next build failed with code/signal 1

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

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

● app-custom-routes › hooks › (await cookies()).has() › gets the correct values

next build failed with code/signal 1

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

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

● app-custom-routes › hooks › redirect › can respond correctly

next build failed with code/signal 1

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

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

● app-custom-routes › hooks › permanentRedirect › can respond correctly

next build failed with code/signal 1

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

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

● app-custom-routes › hooks › notFound › can respond correctly in nodejs

next build failed with code/signal 1

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

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

● app-custom-routes › hooks › notFound › can respond correctly in edge

next build failed with code/signal 1

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

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

● app-custom-routes › error conditions › responds with 400 (Bad Request) when the requested method is not a valid HTTP method

next build failed with code/signal 1

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

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

● app-custom-routes › error conditions › responds with 405 (Method Not Allowed) when method is not implemented

next build failed with code/signal 1

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

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

● app-custom-routes › error conditions › responds with 500 (Internal Server Error) when the handler throws an error

next build failed with code/signal 1

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

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

● app-custom-routes › error conditions › responds with 500 (Internal Server Error) when the handler calls NextResponse.next()

next build failed with code/signal 1

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

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

● app-custom-routes › automatic implementations › implements HEAD on routes with GET already implemented

next build failed with code/signal 1

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

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

● app-custom-routes › automatic implementations › implements OPTIONS on routes

next build failed with code/signal 1

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

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

● app-custom-routes › edge functions › returns response using edge runtime

next build failed with code/signal 1

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

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

● app-custom-routes › edge functions › returns a response when headers are accessed

next build failed with code/signal 1

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

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

● app-custom-routes › dynamic = "force-static" › strips search, headers, and domain from request

next build failed with code/signal 1

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

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

● app-custom-routes › customized metadata routes › should work if conflict with metadata routes convention

next build failed with code/signal 1

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

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

● app-custom-routes › no response returned › should print an error when no response is returned

next build failed with code/signal 1

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

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

● app-custom-routes › no bundle error › should not print bundling warning about React

next build failed with code/signal 1

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

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

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

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

  • Error overlay - RSC build errors > Skipped in webpack > should handle successive HMR changes with errors correctly
Expand output

● Error overlay - RSC build errors › Skipped in webpack › should handle successive HMR changes with errors correctly

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

Expected substring: "A few years ago I tweeted"
Received string:    "<head><meta charset=\"utf-8\" data-next-head=\"\"><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__71d59fbd._.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_0f9cb1ae._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__2a076cb9._.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_5256a9c9._.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\":\"Cannot find module './dist/pages/_document'\",\"stack\":\"Error: Cannot find module './dist/pages/_document'\\n    at /tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/.next/server/chunks/ssr/bdf73_next_document_2f6892c8.js:5:15\\n    at __TURBOPACK__module__evaluation__ (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/.next/server/chunks/ssr/bdf73_next_document_2f6892c8.js:8:3)\\n    at instantiateModule (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/.next/server/chunks/ssr/[turbopack]_runtime.js:756:9)\\n    at instantiateRuntimeModule (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/.next/server/chunks/ssr/[turbopack]_runtime.js:784:12)\\n    at getOrInstantiateRuntimeModule (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/.next/server/chunks/ssr/[turbopack]_runtime.js:797:12)\\n    at Object.m (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/.next/server/chunks/ssr/[turbopack]_runtime.js:806:18)\\n    at Object.\\u003canonymous\\u003e (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/.next/server/pages/_document.js:3:3)\\n    at Module._compile (node:internal/modules/cjs/loader:1241:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)\\n    at Module.load (node:internal/modules/cjs/loader:1091:32)\\n    at Module._load (node:internal/modules/cjs/loader:938:12)\\n    at Module.require (node:internal/modules/cjs/loader:1115:19)\\n    at mod.require (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/require-hook.js:68:28)\\n    at require (node:internal/modules/helpers:130:18)\\n    at requirePage (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/require.js:99:80)\\n    at loadComponentsImpl (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/load-components.js:86:38)\\n    at DevServer.findPageComponentsImpl (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/next-server.js:899:77)\\n    at /tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/next-server.js:877:21\\n    at /tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/lib/trace/tracer.js:170:36\\n    at NoopContextManager.with (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7062)\\n    at ContextAPI.with (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:518)\\n    at NoopTracer.startActiveSpan (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:18093)\\n    at ProxyTracer.startActiveSpan (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:18854)\\n    at /tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/lib/trace/tracer.js:152:103\\n    at NoopContextManager.with (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7062)\\n    at ContextAPI.with (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:518)\\n    at NextTracerImpl.trace (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/lib/trace/tracer.js:152:28)\\n    at DevServer.findPageComponents (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/next-server.js:872:41)\\n    at DevServer.findPageComponents (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/dev/next-dev-server.js:705:28)\\n    at async DevServer.renderErrorToResponseImpl (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/base-server.js:1687:26)\\n    at async pipe.req.req (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/base-server.js:1610:30)\\n    at async DevServer.pipeImpl (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/base-server.js:1025:25)\\n    at async NextNodeServer.handleCatchallRenderRequest (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/next-server.js:408:21)\\n    at async DevServer.handleRequestImpl (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/base-server.js:916:17)\\n    at async /tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/dev/next-dev-server.js:399:20\\n    at async Span.traceAsyncFn (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/trace/trace.js:157:20)\\n    at async DevServer.handleRequest (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/dev/next-dev-server.js:395:24)\\n    at async invokeRender (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/lib/router-server.js:240:21)\\n    at async handleRequest (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/lib/router-server.js:437:24)\\n    at async requestHandlerImpl (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/lib/router-server.js:485:13)\\n    at async Server.requestListener (/tmp/next-install-060f773afa6ae34490ebd24d5772177ce3bd0c6bc4d7f52d4b363b1dee096a39/node_modules/.pnpm/next@file+..+next-repo-c8f4fd6b8001d3faf947145d9433d1ab9c523b56306cf6b990e2bbff4058f067+packa_yckbsmppn6mqokafhsyttjo4im/node_modules/next/dist/server/lib/start-server.js:226:13)\"},\"gip\":true,\"scriptLoader\":[]}</script></body>"

  35 |         expect(
  36 |           await session.evaluate('document.documentElement.innerHTML')
> 37 |         ).toContain('A few years ago I tweeted')
     |           ^
  38 |
  39 |         const pagePath = 'app/(post)/2020/develop-preview-test/page.mdx'
  40 |         const originalPage = await next.readFile(pagePath)

  at Object.toContain (development/acceptance-app/app-hmr-changes.test.ts:37:11)

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

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

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

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

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

Expected: 0
Received: 1

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

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

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

TypeError: Invalid URL

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

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

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

TypeError: Invalid URL

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

  at parseURL (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:182:15)
  at fetchViaHTTP (lib/next-test-utils.ts:191:10)
  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:31:37)

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

TypeError: Invalid URL

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

  at parseURL (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:182:15)
  at fetchViaHTTP (lib/next-test-utils.ts:191:10)
  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:36:37)

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

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

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

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

  1207 |
  1208 | function readJson(path: string) {
> 1209 |   return JSON.parse(readFileSync(path, 'utf-8'))
       |                                 ^
  1210 | }
  1211 |
  1212 | export function getBuildManifest(dir: string) {

  at readJson (lib/next-test-utils.ts:1209:33)
  at readJson (lib/next-test-utils.ts:1264:10)
  at getPagesManifest (lib/next-test-utils.ts:1274:25)
  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:47:48)

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

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

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

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

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

Expected: 0
Received: 1

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

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

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

TypeError: Invalid URL

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

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

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

TypeError: Invalid URL

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

  at parseURL (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:182:15)
  at fetchViaHTTP (lib/next-test-utils.ts:191:10)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:33:37)

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

TypeError: Invalid URL

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

  at parseURL (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:182:15)
  at fetchViaHTTP (lib/next-test-utils.ts:191:10)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:38:24)

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

TypeError: Invalid URL

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

  at parseURL (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:182:15)
  at fetchViaHTTP (lib/next-test-utils.ts:191:10)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:44:37)

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

TypeError: Invalid URL

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

  at parseURL (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1164:12)
  at new Request (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1210:17)
  at ../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1439:19
  at fetch (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1437:9)
  at fetchViaHTTP (lib/next-test-utils.ts:182:15)
  at fetchViaHTTP (lib/next-test-utils.ts:191:10)
  at Object.<anonymous> (integration/404-page-ssg/test/index.test.js:50:39)

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

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

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

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

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

pnpm test test/integration/build-trace-extra-entries/test/index.test.js (turbopack)

  • build trace with extra entries > production mode > should build and trace correctly
Expand output

● build trace with extra entries › production mode › should build and trace correctly

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

Expected: 0
Received: 1

  17 |           stdout: true,
  18 |         })
> 19 |         expect(result.code).toBe(0)
     |                             ^
  20 |
  21 |         const appTrace = await fs.readJSON(
  22 |           join(appDir, '.next/server/pages/_app.js.nft.json')

  at Object.toBe (integration/build-trace-extra-entries/test/index.test.js:19:29)

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

pnpm test test/integration/dynamic-optional-routing/test/index.test.js (turbopack)

  • Dynamic Optional Routing > production mode > should render catch-all top-level route with multiple segments
  • Dynamic Optional Routing > production mode > should render catch-all top-level route with single segment
  • Dynamic Optional Routing > production mode > should render catch-all top-level route with no segments
  • Dynamic Optional Routing > production mode > should render catch-all nested route with multiple segments
  • Dynamic Optional Routing > production mode > should render catch-all nested route with single segment
  • Dynamic Optional Routing > production mode > should render catch-all nested route with no segments
  • Dynamic Optional Routing > production mode > should render catch-all nested route with no segments and leading slash
  • Dynamic Optional Routing > production mode > should match catch-all api route with multiple segments
  • Dynamic Optional Routing > production mode > should match catch-all api route with single segment
  • Dynamic Optional Routing > production mode > should match catch-all api route with no segments
  • Dynamic Optional Routing > production mode > should match catch-all api route with no segments and leading slash
  • Dynamic Optional Routing > production mode > should handle getStaticPaths no segments
  • Dynamic Optional Routing > production mode > should handle getStaticPaths no segments and trailing slash
  • Dynamic Optional Routing > production mode > should handle getStaticPaths 1 segment
  • Dynamic Optional Routing > production mode > should handle getStaticPaths 1 segment and trailing slash
  • Dynamic Optional Routing > production mode > should handle getStaticPaths 2 segments
  • Dynamic Optional Routing > production mode > should handle getStaticPaths 2 segments and trailing slash
  • Dynamic Optional Routing > production mode > should fall back to top-level catch-all
  • Dynamic Optional Routing > production mode > should match root path on undefined param
  • Dynamic Optional Routing > production mode > should match root path on false param
  • Dynamic Optional Routing > production mode > should match root path on null param
  • Dynamic Optional Routing > production mode > should handle getStaticPaths with fallback no segments
  • Dynamic Optional Routing > production mode > should handle getStaticPaths with fallback 2 segments
  • Dynamic Optional Routing > production mode > should fallback correctly when fallback enabled
  • Dynamic Optional Routing > production mode > should fail to build when optional route has index.js at root
  • Dynamic Optional Routing > production mode > should fail to build when optional route has same page at root
  • Dynamic Optional Routing > production mode > should fail to build when mixed with regular catch-all
  • Dynamic Optional Routing > production mode > should fail to build when optional but no catch-all
  • Dynamic Optional Routing > production mode > should fail to build when param is not explicitly defined
Expand output

● Dynamic Optional Routing › production mode › should render catch-all top-level route with multiple segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should render catch-all top-level route with single segment

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should render catch-all top-level route with no segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should render catch-all nested route with multiple segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should render catch-all nested route with single segment

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should render catch-all nested route with no segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should render catch-all nested route with no segments and leading slash

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should match catch-all api route with multiple segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should match catch-all api route with single segment

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should match catch-all api route with no segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should match catch-all api route with no segments and leading slash

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should handle getStaticPaths no segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should handle getStaticPaths no segments and trailing slash

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should handle getStaticPaths 1 segment

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should handle getStaticPaths 1 segment and trailing slash

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should handle getStaticPaths 2 segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should handle getStaticPaths 2 segments and trailing slash

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should fall back to top-level catch-all

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should match root path on undefined param

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should match root path on false param

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should match root path on null param

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should handle getStaticPaths with fallback no segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should handle getStaticPaths with fallback 2 segments

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should fallback correctly when fallback enabled

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should fail to build when optional route has index.js at root

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should fail to build when optional route has same page at root

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should fail to build when mixed with regular catch-all

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should fail to build when optional but no catch-all

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

● Dynamic Optional Routing › production mode › should fail to build when param is not explicitly defined

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

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

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

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

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

command failed with code 1 signal null
 ⚠ Linting is disabled.
   ▲ Next.js 15.4.2-canary.52 (Turbopack)

   Checking validity of types ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
Failed to write page endpoint /_error

Caused by:
- not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries_operation failed
- Execution of *all_assets_from_entries failed
- Execution of output_assets_operation failed
- Execution of <PageEndpoint as Endpoint>::output failed
- Failed to write page endpoint /_error
- Execution of PageEndpoint::output failed
- Execution of PageEndpoint::client_chunks failed
- Execution of *ChunkingContext::evaluated_chunk_group failed
- Execution of Project::client_chunking_context failed
- Execution of *get_client_chunking_context failed
- Execution of Project::module_ids failed
- Execution of Project::whole_app_module_graphs failed
- Execution of whole_app_module_graph_operation failed
- Execution of *ModuleGraph::from_single_graph failed
- Execution of *SingleModuleGraph::new_with_entries failed
- Execution of Project::get_all_entries failed
- Execution of <PageEndpoint as Endpoint>::entries failed
- Execution of PageEndpoint::internal_ssr_chunk_module failed
- Execution of create_page_ssr_entry_module failed
- Execution of process_global_item failed
- Execution of *ProcessResult::module failed
- Execution of apply_module_type failed
- Execution of *EcmascriptExports::split_locals_and_reexports failed
- Execution of <EcmascriptModuleAsset as EcmascriptChunkPlaceable>::get_exports failed
- Execution of analyse_ecmascript_module failed
- not in a function

> Build error occurred
Error [TurbopackInternalError]: Failed to write page endpoint /_error

Caused by:
- not in a function

Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries_operation failed
- Execution of *all_assets_from_entries failed
- Execution of output_assets_operation failed
- Execution of <PageEndpoint as Endpoint>::output failed
- Failed to write page endpoint /_error
- Execution of PageEndpoint::output failed
- Execution of PageEndpoint::client_chunks failed
- Execution of *ChunkingContext::evaluated_chunk_group failed
- Execution of Project::client_chunking_context failed
- Execution of *get_client_chunking_context failed
- Execution of Project::module_ids failed
- Execution of Project::whole_app_module_graphs failed
- Execution of whole_app_module_graph_operation failed
- Execution of *ModuleGraph::from_single_graph failed
- Execution of *SingleModuleGraph::new_with_entries failed
- Execution of Project::get_all_entries failed
- Execution of <PageEndpoint as Endpoint>::entries failed
- Execution of PageEndpoint::internal_ssr_chunk_module failed
- Execution of create_page_ssr_entry_module failed
- Execution of process_global_item failed
- Execution of *ProcessResult::module failed
- Execution of apply_module_type failed
- Execution of *EcmascriptExports::split_locals_and_reexports failed
- Execution of <EcmascriptModuleAsset as EcmascriptChunkPlaceable>::get_exports failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: Failed to write page endpoint /_error)

  314 |       ) {
  315 |         return reject(
> 316 |           new Error(
      |           ^
  317 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  318 |           )
  319 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:316:11)

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

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

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

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

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

Expected substring: "Error: you provided query values for / which is an auto-exported page. These can not be applied since the page can no longer be re-rendered on the server. To disable auto-export for this page add `getInitialProps`"
Received string:    " ⚠ Linting is disabled.·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function·
thread 'tokio-runtime-worker' panicked at turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37:
not in a function
FATAL: An unexpected Turbopack error occurred:
not in a function·
Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function·
> Build error occurred
Error [TurbopackInternalError]: not in a function·
Debug info:
- Execution of TaskId { id: 2147483650 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of *emit_assets failed
- Execution of all_assets_from_entries failed
- Execution of <TracedAsset as OutputAsset>::references failed
- Execution of referenced_modules_and_affecting_sources failed
- Execution of <EcmascriptModuleAsset as Module>::references failed
- Execution of *AnalyzeEcmascriptModuleResult::references failed
- Execution of analyse_ecmascript_module failed
- not in a function
    at <unknown> (TurbopackInternalError: not in a function)

  11 |   it('should show warning for query provided for auto exported page correctly', async () => {
  12 |     expect(exitCode).toBe(1)
> 13 |     expect(stderr).toContain(
     |                    ^
  14 |       'Error: you provided query values for / which is an auto-exported page. These can not be applied since the page can no longer be re-rendered on the server. To disable auto-export for this page add `getInitialProps`'
  15 |     )
  16 |

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-ecmascript/src/analyzer/graph.rs:893:37'
  }
  "
  at Object.toContain (integration/auto-export-query-error/test/index.test.js:13:20)

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

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

  • Error overlay - editor links > should be possible to open source file on build error
Expand output

● Error overlay - editor links › should be possible to open source file on build error

Application is in inconsistent state: timeout.

  113 |             }
  114 |             if (status !== 'pending') {
> 115 |               throw new Error(
      |                     ^
  116 |                 `Application is in inconsistent state: ${status}.`
  117 |               )
  118 |             }

  at Object.patch (lib/development-sandbox.ts:115:21)
  at Object.<anonymous> (development/acceptance-app/editor-links.test.ts:60:5)

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

pnpm test-dev-turbo test/development/app-dir/error-overlay/async-client-component/async-client-component.test.ts (turbopack)

  • app-dir - async-client-component > app router client component async module
  • app-dir - async-client-component > app router server component async module
Expand output

● app-dir - async-client-component › app router client component async module

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `app-dir - async-client-component app router client component async module 1`

- Snapshot  - 16
+ Received  +  1

- [
-   {
-     "description": "<Page> is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.",
-     "environmentLabel": null,
-     "label": "Console Error",
-     "source": null,
-     "stack": [],
-   },
-   {
-     "description": "A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework.",
-     "environmentLabel": null,
-     "label": "Console Error",
-     "source": null,
-     "stack": [],
-   },
- ]
+ "Redbox did not open."

  15 |     // Ideally, it would be issued from the async Component instead but that's
  16 |     // harder to implement.
> 17 |     await expect(browser).toDisplayCollapsedRedbox(`
     |                           ^
  18 |      [
  19 |        {
  20 |          "description": "<Page> is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding \`'use client'\` to a module that was originally written for the server.",

  at Object.toDisplayCollapsedRedbox (development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:17:27)

● app-dir - async-client-component › app router server component async module

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

  458 |   waitForElementByCss(selector: string, timeout = 10_000) {
  459 |     return this.startChain(async () => {
> 460 |       const el = await page.waitForSelector(selector, {
      |                             ^
  461 |         timeout,
  462 |         state: 'attached',
  463 |       })

  at waitForSelector (lib/browsers/playwright.ts:460:29)
  at Playwright._chain (lib/browsers/playwright.ts:576:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:557:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:459:17)
  at Playwright.waitForElementByCss [as elementByCss] (lib/browsers/playwright.ts:375:17)
  at Object.elementByCss (development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:42:26)
  at Proxy._chain (lib/browsers/playwright.ts:576:23)
  at Proxy._chain (lib/browsers/playwright.ts:552:17)
  at Proxy.continueChain (lib/browsers/playwright.ts:391:17)
  at Object.text (development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:42:60)

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

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

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

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

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

Expected: "foo"
Received: ""

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

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

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

@ijjk
Copy link
Member

ijjk commented Aug 2, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js export_values Change
buildDuration 20.7s 17.6s N/A
buildDurationCached 16.7s 14.7s N/A
nodeModulesSize 447 MB 447 MB
nextStartRea..uration (ms) 428ms 433ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js export_values Change
234bef07-HASH.js gzip 54.2 kB 54.2 kB N/A
5194.HASH.js gzip 169 B 169 B
8863-HASH.js gzip 5.27 kB 5.27 kB N/A
9304-HASH.js gzip 46 kB 45.3 kB N/A
framework-HASH.js gzip 57.7 kB 57.7 kB N/A
main-app-HASH.js gzip 254 B 254 B
main-HASH.js gzip 36.7 kB 36.5 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 423 B 423 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js export_values 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 export_values Change
_app-HASH.js gzip 194 B 193 B N/A
_error-HASH.js gzip 182 B 182 B
amp-HASH.js gzip 502 B 507 B N/A
css-HASH.js gzip 335 B 333 B N/A
dynamic-HASH.js gzip 1.83 kB 1.83 kB N/A
edge-ssr-HASH.js gzip 255 B 255 B
head-HASH.js gzip 350 B 352 B N/A
hooks-HASH.js gzip 385 B 383 B N/A
image-HASH.js gzip 4.65 kB 4.66 kB N/A
index-HASH.js gzip 257 B 259 B N/A
link-HASH.js gzip 2.52 kB 2.52 kB N/A
routerDirect..HASH.js gzip 320 B 318 B N/A
script-HASH.js gzip 387 B 386 B N/A
withRouter-HASH.js gzip 315 B 313 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 543 B 543 B
Client Build Manifests
vercel/next.js canary vercel/next.js export_values Change
_buildManifest.js gzip 753 B 751 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js export_values Change
index.html gzip 524 B 522 B N/A
link.html gzip 538 B 536 B N/A
withRouter.html gzip 520 B 517 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js export_values Change
edge-ssr.js gzip 120 kB 120 kB N/A
page.js gzip 224 kB 223 kB N/A
Overall change 0 B 0 B
Middleware size Overall increase ⚠️
vercel/next.js canary vercel/next.js export_values Change
middleware-b..fest.js gzip 673 B 675 B N/A
middleware-r..fest.js gzip 156 B 155 B N/A
middleware.js gzip 33 kB 33.2 kB ⚠️ +168 B
edge-runtime..pack.js gzip 853 B 853 B
Overall change 33.9 kB 34 kB ⚠️ +168 B
Next Runtimes
vercel/next.js canary vercel/next.js export_values Change
app-page-exp...dev.js gzip 285 kB 285 kB N/A
app-page-exp..prod.js gzip 156 kB 156 kB
app-page-tur...dev.js gzip 285 kB 285 kB N/A
app-page-tur..prod.js gzip 156 kB 156 kB
app-page-tur...dev.js gzip 273 kB 273 kB N/A
app-page-tur..prod.js gzip 150 kB 150 kB
app-page.run...dev.js gzip 273 kB 273 kB N/A
app-page.run..prod.js gzip 150 kB 150 kB
app-route-ex...dev.js gzip 69.8 kB 69.8 kB
app-route-ex..prod.js gzip 49 kB 49 kB
app-route-tu...dev.js gzip 69.9 kB 69.9 kB
app-route-tu..prod.js gzip 49 kB 49 kB
app-route-tu...dev.js gzip 69.2 kB 69.2 kB
app-route-tu..prod.js gzip 48.6 kB 48.6 kB
app-route.ru...dev.js gzip 69.2 kB 69.2 kB
app-route.ru..prod.js gzip 48.6 kB 48.6 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 42.3 kB 42.3 kB
pages-api-tu..prod.js gzip 32.5 kB 32.5 kB
pages-api.ru...dev.js gzip 42.2 kB 42.2 kB
pages-api.ru..prod.js gzip 32.5 kB 32.5 kB
pages-turbo....dev.js gzip 52.4 kB 52.4 kB
pages-turbo...prod.js gzip 40 kB 40 kB
pages.runtim...dev.js gzip 52.6 kB 52.6 kB
pages.runtim..prod.js gzip 40.1 kB 40.1 kB
server.runti..prod.js gzip 59.9 kB 59.9 kB
Overall change 1.48 MB 1.48 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js export_values Change
0.pack gzip 2.9 MB 2.91 MB ⚠️ +3.79 kB
index.pack gzip 94 kB 93.8 kB N/A
Overall change 2.9 MB 2.91 MB ⚠️ +3.79 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

Diff too large to display

Diff for amp-HASH.js
@@ -1,17 +1,65 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [5034],
   {
-    /***/ 4105: /***/ (
+    /***/ 6212: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ config: () => /* binding */ config,
+        /* harmony export */ default: () => /* binding */ Amp,
+        /* harmony export */
+      });
+      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(7023);
+      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_amp__WEBPACK_IMPORTED_MODULE_0__
+        );
+
+      const config = {
+        amp: "hybrid",
+      };
+      function Amp(props) {
+        return (0, next_amp__WEBPACK_IMPORTED_MODULE_0__.useAmp)()
+          ? "AMP mode"
+          : "normal mode";
+      }
+
+      /***/
+    },
+
+    /***/ 7023: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(4642);
+      module.exports = __webpack_require__(9926);
+
+      /***/
+    },
+
+    /***/ 8647: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/amp",
+        function () {
+          return __webpack_require__(6212);
+        },
+      ]);
+      if (false) {
+      }
 
       /***/
     },
 
-    /***/ 4642: /***/ (module, exports, __webpack_require__) => {
+    /***/ 9926: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -27,8 +75,8 @@
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(5977)
       );
-      const _ampcontextsharedruntime = __webpack_require__(8358);
-      const _ampmode = __webpack_require__(242);
+      const _ampcontextsharedruntime = __webpack_require__(5418);
+      const _ampmode = __webpack_require__(3494);
       function useAmp() {
         // Don't assign the context value to a variable to save bytes
         return (0, _ampmode.isInAmpMode)(
@@ -49,61 +97,13 @@
 
       /***/
     },
-
-    /***/ 5261: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/amp",
-        function () {
-          return __webpack_require__(9550);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 9550: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ config: () => /* binding */ config,
-        /* harmony export */ default: () => /* binding */ Amp,
-        /* harmony export */
-      });
-      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(4105);
-      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_amp__WEBPACK_IMPORTED_MODULE_0__
-        );
-
-      const config = {
-        amp: "hybrid",
-      };
-      function Amp(props) {
-        return (0, next_amp__WEBPACK_IMPORTED_MODULE_0__.useAmp)()
-          ? "AMP mode"
-          : "normal mode";
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(5261)
+      __webpack_exec__(8647)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for css-HASH.js
@@ -1,7 +1,14 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9813],
   {
-    /***/ 5267: /***/ (
+    /***/ 1978: /***/ (module) => {
+      // extracted by mini-css-extract-plugin
+      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
+
+      /***/
+    },
+
+    /***/ 6941: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -15,7 +22,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7765);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(6320);
+        __webpack_require__(1978);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -35,14 +42,7 @@
       /***/
     },
 
-    /***/ 6320: /***/ (module) => {
-      // extracted by mini-css-extract-plugin
-      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
-
-      /***/
-    },
-
-    /***/ 9643: /***/ (
+    /***/ 8685: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -50,7 +50,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/css",
         function () {
-          return __webpack_require__(5267);
+          return __webpack_require__(6941);
         },
       ]);
       if (false) {
@@ -64,7 +64,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9643)
+      __webpack_exec__(8685)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,17 +1,63 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 2406: /***/ (
-      module,
-      __unused_webpack_exports,
+    /***/ 2839: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(8949);
+      "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__(7765);
+      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(7444);
+      /* 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() */ 1376)
+            .then(__webpack_require__.bind(__webpack_require__, 1376))
+            .then((mod) => mod.Hello),
+        {
+          loadableGenerated: {
+            webpack: () => [/*require.resolve*/ 1376],
+          },
+        }
+      );
+      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;
 
       /***/
     },
 
-    /***/ 4466: /***/ (
+    /***/ 4478: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -53,7 +99,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(5977)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(8452);
+      const _loadablecontextsharedruntime = __webpack_require__(5792);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -288,63 +334,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 4545: /***/ (
-      __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__(7765);
-      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(2406);
-      /* 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() */ 5194)
-            .then(__webpack_require__.bind(__webpack_require__, 5194))
-            .then((mod) => mod.Hello),
-        {
-          loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 5194],
-          },
-        }
-      );
-      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;
-
-      /***/
-    },
-
-    /***/ 8452: /***/ (
+    /***/ 5792: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -371,24 +361,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 8931: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/dynamic",
-        function () {
-          return __webpack_require__(4545);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 8949: /***/ (module, exports, __webpack_require__) => {
+    /***/ 6153: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -421,7 +394,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         __webpack_require__(5977)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(4466)
+        __webpack_require__(4478)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -521,13 +494,40 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
 
       /***/
     },
+
+    /***/ 7444: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(6153);
+
+      /***/
+    },
+
+    /***/ 9805: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/dynamic",
+        function () {
+          return __webpack_require__(2839);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(8931)
+      __webpack_exec__(9805)
     );
     /******/ 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],
   {
-    /***/ 4717: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/edge-ssr",
-        function () {
-          return __webpack_require__(7776);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7776: /***/ (
+    /***/ 170: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -37,13 +20,30 @@
 
       /***/
     },
+
+    /***/ 8079: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/edge-ssr",
+        function () {
+          return __webpack_require__(170);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4717)
+      __webpack_exec__(8079)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,34 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [5350],
   {
-    /***/ 943: /***/ (
+    /***/ 1177: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(2554);
+      module.exports = __webpack_require__(8366);
 
       /***/
     },
 
-    /***/ 3829: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/head",
-        function () {
-          return __webpack_require__(4662);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 4662: /***/ (
+    /***/ 1992: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +26,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7765);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(943);
+        __webpack_require__(1177);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -76,13 +59,30 @@
 
       /***/
     },
+
+    /***/ 8751: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/head",
+        function () {
+          return __webpack_require__(1992);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(3829)
+      __webpack_exec__(8751)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9804],
   {
-    /***/ 2452: /***/ (
+    /***/ 2227: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/hooks",
+        function () {
+          return __webpack_require__(2770);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 2770: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -59,30 +76,13 @@
 
       /***/
     },
-
-    /***/ 6105: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function () {
-          return __webpack_require__(2452);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(6105)
+      __webpack_exec__(2227)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js

Diff too large to display

Diff for link-HASH.js
@@ -1,143 +1,82 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 1585: /***/ (module, exports, __webpack_require__) => {
+    /***/ 2346: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      Object.defineProperty(exports, "useIntersection", {
+      Object.defineProperty(exports, "errorOnce", {
         enumerable: true,
         get: function () {
-          return useIntersection;
+          return errorOnce;
         },
       });
-      const _react = __webpack_require__(5977);
-      const _requestidlecallback = __webpack_require__(356);
-      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(param) {
-        let { rootRef, rootMargin, disabled } = param;
-        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 == null ? void 0 : 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
+      let errorOnce = (_) => {};
+      if (false) {
+      } //# sourceMappingURL=error-once.js.map
 
       /***/
     },
 
-    /***/ 2621: /***/ (
+    /***/ 2783: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(5410);
+      module.exports = __webpack_require__(5926);
 
       /***/
     },
 
-    /***/ 5410: /***/ (module, exports, __webpack_require__) => {
+    /***/ 4174: /***/ (
+      __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__(7765);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(2783);
+      /* 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;
+
+      /***/
+    },
+
+    /***/ 5926: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -164,17 +103,17 @@
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(5977)
       );
-      const _resolvehref = __webpack_require__(224);
-      const _islocalurl = __webpack_require__(7746);
-      const _formaturl = __webpack_require__(315);
-      const _utils = __webpack_require__(8709);
-      const _addlocale = __webpack_require__(6358);
-      const _routercontextsharedruntime = __webpack_require__(4095);
-      const _useintersection = __webpack_require__(1585);
-      const _getdomainlocale = __webpack_require__(8802);
-      const _addbasepath = __webpack_require__(6151);
-      const _usemergedref = __webpack_require__(9100);
-      const _erroronce = __webpack_require__(9574);
+      const _resolvehref = __webpack_require__(6708);
+      const _islocalurl = __webpack_require__(6526);
+      const _formaturl = __webpack_require__(5575);
+      const _utils = __webpack_require__(3497);
+      const _addlocale = __webpack_require__(722);
+      const _routercontextsharedruntime = __webpack_require__(1235);
+      const _useintersection = __webpack_require__(8069);
+      const _getdomainlocale = __webpack_require__(9734);
+      const _addbasepath = __webpack_require__(4419);
+      const _usemergedref = __webpack_require__(6136);
+      const _erroronce = __webpack_require__(2346);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -563,43 +502,7 @@
       /***/
     },
 
-    /***/ 8802: /***/ (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__(1652);
-      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
-
-      /***/
-    },
-
-    /***/ 9100: /***/ (module, exports, __webpack_require__) => {
+    /***/ 6136: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -677,26 +580,7 @@
       /***/
     },
 
-    /***/ 9574: /***/ (__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
-
-      /***/
-    },
-
-    /***/ 9693: /***/ (
+    /***/ 7047: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -704,7 +588,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/link",
         function () {
-          return __webpack_require__(9948);
+          return __webpack_require__(4174);
         },
       ]);
       if (false) {
@@ -713,48 +597,164 @@
       /***/
     },
 
-    /***/ 9948: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
+    /***/ 8069: /***/ (module, 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 */
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
       });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(7765);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(2621);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_link__WEBPACK_IMPORTED_MODULE_1__
+      Object.defineProperty(exports, "useIntersection", {
+        enumerable: true,
+        get: function () {
+          return useIntersection;
+        },
+      });
+      const _react = __webpack_require__(5977);
+      const _requestidlecallback = __webpack_require__(3432);
+      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
         );
-
-      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 /",
-              }
-            ),
-          ],
+        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(param) {
+        let { rootRef, rootMargin, disabled } = param;
+        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 == null ? void 0 : 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
+
+      /***/
+    },
+
+    /***/ 9734: /***/ (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__(504);
+      const basePath =
+        /* unused pure expression or super */ null && (false || "");
+      function getDomainLocale(path, locale, locales, domainLocales) {
+        if (false) {
+        } else {
+          return false;
+        }
       }
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+      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
 
       /***/
     },
@@ -764,7 +764,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9693)
+      __webpack_exec__(7047)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,7 +1,34 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 3699: /***/ (
+    /***/ 1008: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(2817);
+
+      /***/
+    },
+
+    /***/ 6951: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/script",
+        function () {
+          return __webpack_require__(8889);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 8889: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -16,7 +43,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7765);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4802);
+        __webpack_require__(1008);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -48,40 +75,13 @@
 
       /***/
     },
-
-    /***/ 4802: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(8661);
-
-      /***/
-    },
-
-    /***/ 7861: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/script",
-        function () {
-          return __webpack_require__(3699);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(7861)
+      __webpack_exec__(6951)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 8863-HASH.js
@@ -1,8 +1,33 @@
 "use strict";
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [8863],
+  [7009],
   {
-    /***/ 22: /***/ (module, exports, __webpack_require__) => {
+    /***/ 414: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "AmpStateContext", {
+        enumerable: true,
+        get: function () {
+          return AmpStateContext;
+        },
+      });
+      const _interop_require_default = __webpack_require__(2726);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(2224)
+      );
+      const AmpStateContext = _react.default.createContext({});
+      if (false) {
+      } //# sourceMappingURL=amp-context.shared-runtime.js.map
+
+      /***/
+    },
+
+    /***/ 1912: /***/ (module, exports, __webpack_require__) => {
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
@@ -12,7 +37,7 @@
           return useMergedRef;
         },
       });
-      const _react = __webpack_require__(2786);
+      const _react = __webpack_require__(2224);
       function useMergedRef(refA, refB) {
         const cleanupA = (0, _react.useRef)(null);
         const cleanupB = (0, _react.useRef)(null);
@@ -78,56 +103,99 @@
       /***/
     },
 
-    /***/ 936: /***/ (__unused_webpack_module, exports) => {
+    /***/ 2843: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
       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, {
-        VALID_LOADERS: function () {
-          return VALID_LOADERS;
+      Object.defineProperty(exports, "RouterContext", {
+        enumerable: true,
+        get: function () {
+          return RouterContext;
         },
-        imageConfigDefault: function () {
-          return imageConfigDefault;
+      });
+      const _interop_require_default = __webpack_require__(2726);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(2224)
+      );
+      const RouterContext = _react.default.createContext(null);
+      if (false) {
+      } //# sourceMappingURL=router-context.shared-runtime.js.map
+
+      /***/
+    },
+
+    /***/ 3003: /***/ (__unused_webpack_module, exports) => {
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "default", {
+        enumerable: true,
+        get: function () {
+          return _default;
         },
       });
-      const VALID_LOADERS = [
-        "default",
-        "imgix",
-        "cloudinary",
-        "akamai",
-        "custom",
-      ];
-      const imageConfigDefault = {
-        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-        imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
-        path: "/_next/image",
-        loader: "default",
-        loaderFile: "",
-        domains: [],
-        disableStaticImages: false,
-        minimumCacheTTL: 60,
-        formats: ["image/webp"],
-        dangerouslyAllowSVG: false,
-        contentSecurityPolicy: "script-src 'none'; frame-src 'none'; sandbox;",
-        contentDispositionType: "attachment",
-        localPatterns: undefined,
-        remotePatterns: [],
-        qualities: undefined,
-        unoptimized: false,
-      }; //# sourceMappingURL=image-config.js.map
+      const DEFAULT_Q = 75;
+      function defaultLoader(param) {
+        let { config, src, width, quality } = param;
+        var _config_qualities;
+        if (false) {
+        }
+        const q =
+          quality ||
+          ((_config_qualities = config.qualities) == null
+            ? void 0
+            : _config_qualities.reduce((prev, cur) =>
+                Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q)
+                  ? cur
+                  : prev
+              )) ||
+          DEFAULT_Q;
+        return (
+          config.path +
+          "?url=" +
+          encodeURIComponent(src) +
+          "&w=" +
+          width +
+          "&q=" +
+          q +
+          (src.startsWith("/_next/static/media/") && false ? 0 : "")
+        );
+      }
+      // We use this to determine if the import is the default loader
+      // or a custom loader defined by the user in next.config.js
+      defaultLoader.__next_img_default = true;
+      const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
 
       /***/
     },
 
-    /***/ 1268: /***/ (__unused_webpack_module, exports) => {
+    /***/ 3810: /***/ (__unused_webpack_module, exports) => {
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "isInAmpMode", {
+        enumerable: true,
+        get: function () {
+          return isInAmpMode;
+        },
+      });
+      function isInAmpMode(param) {
+        let {
+          ampFirst = false,
+          hybrid = false,
+          hasQuery = false,
+        } = param === void 0 ? {} : param;
+        return ampFirst || (hybrid && hasQuery);
+      } //# sourceMappingURL=amp-mode.js.map
+
+      /***/
+    },
+
+    /***/ 5218: /***/ (__unused_webpack_module, exports) => {
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
        */
@@ -181,7 +249,7 @@
       /***/
     },
 
-    /***/ 1796: /***/ (module, exports, __webpack_require__) => {
+    /***/ 5402: /***/ (module, exports, __webpack_require__) => {
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
         value: true,
@@ -202,19 +270,19 @@
           return defaultHead;
         },
       });
-      const _interop_require_default = __webpack_require__(8182);
-      const _interop_require_wildcard = __webpack_require__(8319);
-      const _jsxruntime = __webpack_require__(1050);
+      const _interop_require_default = __webpack_require__(2726);
+      const _interop_require_wildcard = __webpack_require__(2527);
+      const _jsxruntime = __webpack_require__(8204);
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
-        __webpack_require__(2786)
+        __webpack_require__(2224)
       );
       const _sideeffect = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(5581)
+        __webpack_require__(9319)
       );
-      const _ampcontextsharedruntime = __webpack_require__(3800);
-      const _headmanagercontextsharedruntime = __webpack_require__(4950);
-      const _ampmode = __webpack_require__(7824);
-      const _warnonce = __webpack_require__(2854);
+      const _ampcontextsharedruntime = __webpack_require__(414);
+      const _headmanagercontextsharedruntime = __webpack_require__(3100);
+      const _ampmode = __webpack_require__(3810);
+      const _warnonce = __webpack_require__(4504);
       function defaultHead(inAmpMode) {
         if (inAmpMode === void 0) inAmpMode = false;
         const head = [
@@ -379,7 +447,7 @@
       /***/
     },
 
-    /***/ 2843: /***/ (
+    /***/ 6745: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -393,9 +461,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(2854);
-      const _imageblursvg = __webpack_require__(1268);
-      const _imageconfig = __webpack_require__(936);
+      const _warnonce = __webpack_require__(4504);
+      const _imageblursvg = __webpack_require__(5218);
+      const _imageconfig = __webpack_require__(9278);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -823,245 +891,7 @@
       /***/
     },
 
-    /***/ 3800: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "AmpStateContext", {
-        enumerable: true,
-        get: function () {
-          return AmpStateContext;
-        },
-      });
-      const _interop_require_default = __webpack_require__(8182);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(2786)
-      );
-      const AmpStateContext = _react.default.createContext({});
-      if (false) {
-      } //# sourceMappingURL=amp-context.shared-runtime.js.map
-
-      /***/
-    },
-
-    /***/ 5581: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "default", {
-        enumerable: true,
-        get: function () {
-          return SideEffect;
-        },
-      });
-      const _react = __webpack_require__(2786);
-      const isServer = "object" === "undefined";
-      const useClientOnlyLayoutEffect = isServer
-        ? () => {}
-        : _react.useLayoutEffect;
-      const useClientOnlyEffect = isServer ? () => {} : _react.useEffect;
-      function SideEffect(props) {
-        const { headManager, reduceComponentsToState } = props;
-        function emitChange() {
-          if (headManager && headManager.mountedInstances) {
-            const headElements = _react.Children.toArray(
-              Array.from(headManager.mountedInstances).filter(Boolean)
-            );
-            headManager.updateHead(
-              reduceComponentsToState(headElements, props)
-            );
-          }
-        }
-        if (isServer) {
-          var _headManager_mountedInstances;
-          headManager == null
-            ? void 0
-            : (_headManager_mountedInstances = headManager.mountedInstances) ==
-              null
-            ? void 0
-            : _headManager_mountedInstances.add(props.children);
-          emitChange();
-        }
-        useClientOnlyLayoutEffect(() => {
-          var _headManager_mountedInstances;
-          headManager == null
-            ? void 0
-            : (_headManager_mountedInstances = headManager.mountedInstances) ==
-              null
-            ? void 0
-            : _headManager_mountedInstances.add(props.children);
-          return () => {
-            var _headManager_mountedInstances;
-            headManager == null
-              ? void 0
-              : (_headManager_mountedInstances =
-                  headManager.mountedInstances) == null
-              ? void 0
-              : _headManager_mountedInstances.delete(props.children);
-          };
-        });
-        // We need to call `updateHead` method whenever the `SideEffect` is trigger in all
-        // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s
-        // being rendered, we only trigger the method from the last one.
-        // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`
-        // singleton in the layout effect pass, and actually trigger it in the effect pass.
-        useClientOnlyLayoutEffect(() => {
-          if (headManager) {
-            headManager._pendingUpdate = emitChange;
-          }
-          return () => {
-            if (headManager) {
-              headManager._pendingUpdate = emitChange;
-            }
-          };
-        });
-        useClientOnlyEffect(() => {
-          if (headManager && headManager._pendingUpdate) {
-            headManager._pendingUpdate();
-            headManager._pendingUpdate = null;
-          }
-          return () => {
-            if (headManager && headManager._pendingUpdate) {
-              headManager._pendingUpdate();
-              headManager._pendingUpdate = null;
-            }
-          };
-        });
-        return null;
-      } //# sourceMappingURL=side-effect.js.map
-
-      /***/
-    },
-
-    /***/ 7053: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "RouterContext", {
-        enumerable: true,
-        get: function () {
-          return RouterContext;
-        },
-      });
-      const _interop_require_default = __webpack_require__(8182);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(2786)
-      );
-      const RouterContext = _react.default.createContext(null);
-      if (false) {
-      } //# sourceMappingURL=router-context.shared-runtime.js.map
-
-      /***/
-    },
-
-    /***/ 7281: /***/ (__unused_webpack_module, exports) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "default", {
-        enumerable: true,
-        get: function () {
-          return _default;
-        },
-      });
-      const DEFAULT_Q = 75;
-      function defaultLoader(param) {
-        let { config, src, width, quality } = param;
-        var _config_qualities;
-        if (false) {
-        }
-        const q =
-          quality ||
-          ((_config_qualities = config.qualities) == null
-            ? void 0
-            : _config_qualities.reduce((prev, cur) =>
-                Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q)
-                  ? cur
-                  : prev
-              )) ||
-          DEFAULT_Q;
-        return (
-          config.path +
-          "?url=" +
-          encodeURIComponent(src) +
-          "&w=" +
-          width +
-          "&q=" +
-          q +
-          (src.startsWith("/_next/static/media/") && false ? 0 : "")
-        );
-      }
-      // We use this to determine if the import is the default loader
-      // or a custom loader defined by the user in next.config.js
-      defaultLoader.__next_img_default = true;
-      const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
-
-      /***/
-    },
-
-    /***/ 7480: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "ImageConfigContext", {
-        enumerable: true,
-        get: function () {
-          return ImageConfigContext;
-        },
-      });
-      const _interop_require_default = __webpack_require__(8182);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(2786)
-      );
-      const _imageconfig = __webpack_require__(936);
-      const ImageConfigContext = _react.default.createContext(
-        _imageconfig.imageConfigDefault
-      );
-      if (false) {
-      } //# sourceMappingURL=image-config-context.shared-runtime.js.map
-
-      /***/
-    },
-
-    /***/ 7824: /***/ (__unused_webpack_module, exports) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "isInAmpMode", {
-        enumerable: true,
-        get: function () {
-          return isInAmpMode;
-        },
-      });
-      function isInAmpMode(param) {
-        let {
-          ampFirst = false,
-          hybrid = false,
-          hasQuery = false,
-        } = param === void 0 ? {} : param;
-        return ampFirst || (hybrid && hasQuery);
-      } //# sourceMappingURL=amp-mode.js.map
-
-      /***/
-    },
-
-    /***/ 8863: /***/ (module, exports, __webpack_require__) => {
+    /***/ 7009: /***/ (module, exports, __webpack_require__) => {
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
         value: true,
@@ -1072,27 +902,27 @@
           return Image;
         },
       });
-      const _interop_require_default = __webpack_require__(8182);
-      const _interop_require_wildcard = __webpack_require__(8319);
-      const _jsxruntime = __webpack_require__(1050);
+      const _interop_require_default = __webpack_require__(2726);
+      const _interop_require_wildcard = __webpack_require__(2527);
+      const _jsxruntime = __webpack_require__(8204);
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
-        __webpack_require__(2786)
+        __webpack_require__(2224)
       );
       const _reactdom = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(1407)
+        __webpack_require__(1345)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(1796)
+        __webpack_require__(5402)
       );
-      const _getimgprops = __webpack_require__(2843);
-      const _imageconfig = __webpack_require__(936);
-      const _imageconfigcontextsharedruntime = __webpack_require__(7480);
-      const _warnonce = __webpack_require__(2854);
-      const _routercontextsharedruntime = __webpack_require__(7053);
+      const _getimgprops = __webpack_require__(6745);
+      const _imageconfig = __webpack_require__(9278);
+      const _imageconfigcontextsharedruntime = __webpack_require__(9690);
+      const _warnonce = __webpack_require__(4504);
+      const _routercontextsharedruntime = __webpack_require__(2843);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(7281)
+        __webpack_require__(3003)
       );
-      const _usemergedref = __webpack_require__(22);
+      const _usemergedref = __webpack_require__(1912);
       // This is replaced by webpack define plugin
       const configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -1417,5 +1247,175 @@
 
       /***/
     },
+
+    /***/ 9278: /***/ (__unused_webpack_module, exports) => {
+      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, {
+        VALID_LOADERS: function () {
+          return VALID_LOADERS;
+        },
+        imageConfigDefault: function () {
+          return imageConfigDefault;
+        },
+      });
+      const VALID_LOADERS = [
+        "default",
+        "imgix",
+        "cloudinary",
+        "akamai",
+        "custom",
+      ];
+      const imageConfigDefault = {
+        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+        imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+        path: "/_next/image",
+        loader: "default",
+        loaderFile: "",
+        domains: [],
+        disableStaticImages: false,
+        minimumCacheTTL: 60,
+        formats: ["image/webp"],
+        dangerouslyAllowSVG: false,
+        contentSecurityPolicy: "script-src 'none'; frame-src 'none'; sandbox;",
+        contentDispositionType: "attachment",
+        localPatterns: undefined,
+        remotePatterns: [],
+        qualities: undefined,
+        unoptimized: false,
+      }; //# sourceMappingURL=image-config.js.map
+
+      /***/
+    },
+
+    /***/ 9319: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "default", {
+        enumerable: true,
+        get: function () {
+          return SideEffect;
+        },
+      });
+      const _react = __webpack_require__(2224);
+      const isServer = "object" === "undefined";
+      const useClientOnlyLayoutEffect = isServer
+        ? () => {}
+        : _react.useLayoutEffect;
+      const useClientOnlyEffect = isServer ? () => {} : _react.useEffect;
+      function SideEffect(props) {
+        const { headManager, reduceComponentsToState } = props;
+        function emitChange() {
+          if (headManager && headManager.mountedInstances) {
+            const headElements = _react.Children.toArray(
+              Array.from(headManager.mountedInstances).filter(Boolean)
+            );
+            headManager.updateHead(
+              reduceComponentsToState(headElements, props)
+            );
+          }
+        }
+        if (isServer) {
+          var _headManager_mountedInstances;
+          headManager == null
+            ? void 0
+            : (_headManager_mountedInstances = headManager.mountedInstances) ==
+              null
+            ? void 0
+            : _headManager_mountedInstances.add(props.children);
+          emitChange();
+        }
+        useClientOnlyLayoutEffect(() => {
+          var _headManager_mountedInstances;
+          headManager == null
+            ? void 0
+            : (_headManager_mountedInstances = headManager.mountedInstances) ==
+              null
+            ? void 0
+            : _headManager_mountedInstances.add(props.children);
+          return () => {
+            var _headManager_mountedInstances;
+            headManager == null
+              ? void 0
+              : (_headManager_mountedInstances =
+                  headManager.mountedInstances) == null
+              ? void 0
+              : _headManager_mountedInstances.delete(props.children);
+          };
+        });
+        // We need to call `updateHead` method whenever the `SideEffect` is trigger in all
+        // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s
+        // being rendered, we only trigger the method from the last one.
+        // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`
+        // singleton in the layout effect pass, and actually trigger it in the effect pass.
+        useClientOnlyLayoutEffect(() => {
+          if (headManager) {
+            headManager._pendingUpdate = emitChange;
+          }
+          return () => {
+            if (headManager) {
+              headManager._pendingUpdate = emitChange;
+            }
+          };
+        });
+        useClientOnlyEffect(() => {
+          if (headManager && headManager._pendingUpdate) {
+            headManager._pendingUpdate();
+            headManager._pendingUpdate = null;
+          }
+          return () => {
+            if (headManager && headManager._pendingUpdate) {
+              headManager._pendingUpdate();
+              headManager._pendingUpdate = null;
+            }
+          };
+        });
+        return null;
+      } //# sourceMappingURL=side-effect.js.map
+
+      /***/
+    },
+
+    /***/ 9690: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "ImageConfigContext", {
+        enumerable: true,
+        get: function () {
+          return ImageConfigContext;
+        },
+      });
+      const _interop_require_default = __webpack_require__(2726);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(2224)
+      );
+      const _imageconfig = __webpack_require__(9278);
+      const ImageConfigContext = _react.default.createContext(
+        _imageconfig.imageConfigDefault
+      );
+      if (false) {
+      } //# sourceMappingURL=image-config-context.shared-runtime.js.map
+
+      /***/
+    },
   },
 ]);
Diff for 9304-HASH.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Commit: a86d64d

@codspeed-hq
Copy link

codspeed-hq bot commented Aug 2, 2025

CodSpeed Performance Report

Merging #82293 will create unknown performance changes

Comparing export_values (a86d64d) with canary (480a0e1)1

Summary

⁉️ 9 dropped benchmarks

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown

Benchmark BASE HEAD Change
⁉️ build[date-fns-all] 2.3 s N/A N/A
⁉️ build[date-fns-single] 1.4 s N/A N/A
⁉️ build[framer-motion-all] 3.2 s N/A N/A
⁉️ build[framer-motion-single] 2.3 s N/A N/A
⁉️ build[joy] 2.1 s N/A N/A
⁉️ build[lucide-react-all] 9.2 s N/A N/A
⁉️ build[lucide-react-single] 909.9 ms N/A N/A
⁉️ build[mui] 3.2 s N/A N/A
⁉️ build[shiki] 6.1 s N/A N/A

Footnotes

  1. No successful run was found on canary (a90827b) during the generation of this report, so 480a0e1 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@lukesandberg lukesandberg changed the title [turbopack] don't bind getters for const exports [turbopack] bind const exports Aug 2, 2025
@lukesandberg lukesandberg changed the title [turbopack] bind const exports [turbopack] bind const exports as values not getters Aug 2, 2025
@lukesandberg lukesandberg force-pushed the export_values branch 2 times, most recently from 58fe815 to d687e69 Compare August 2, 2025 20:25
Copy link
Contributor

@vercel vercel bot left a comment

Choose a reason for hiding this comment

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

Additional Comments:

crates/next-core/src/next_client_reference/ecmascript_client_reference/ecmascript_client_reference_module.rs (lines 18-18):

The import references ModuleExportUsageInfo which was renamed to ModuleExportUsage in this PR, causing compilation errors.

View Details

Analysis

This file imports ModuleExportUsageInfo on line 18 and uses it on line 79 with ModuleExportUsageInfo::all(). However, this type was renamed to ModuleExportUsage in the changes to export_usage.rs. Additionally, the API has changed - the new pattern should use ModuleExportUsage::all() to get the wrapper struct, then access the export_usage field when calling expand_exports().

The current usage:

let exports = exports.expand_exports(ModuleExportUsageInfo::all()).await?;

Should become:

let usage = ModuleExportUsage::all().await?;
let exports = exports.expand_exports(*usage.export_usage).await?;

Recommendation

  1. Update the import on line 18 from ModuleExportUsageInfo to ModuleExportUsage
  2. Update line 79 from exports.expand_exports(ModuleExportUsageInfo::all()).await? to:
    let usage = ModuleExportUsage::all().await?;
    let exports = exports.expand_exports(*usage.export_usage).await?;

turbopack/crates/turbopack-ecmascript/src/references/esm/base.rs (lines 26-26):

The import and usage of ModuleExportUsageInfo needs to be updated to use the new ModuleExportUsage API.

View Details

Analysis

This file imports ModuleExportUsageInfo on line 26 and uses it on line 172 with ModuleExportUsageInfo::all(). However, this type was renamed to ModuleExportUsage and the API changed in this PR. The same issue exists as in the client reference module where the type was renamed but the usage wasn't updated.

The current usage:

let exports = exports.expand_exports(ModuleExportUsageInfo::all()).await?;

Should become:

let usage = ModuleExportUsage::all().await?;
let exports = exports.expand_exports(*usage.export_usage).await?;

Recommendation

  1. Update the import on line 26 from ModuleExportUsageInfo to ModuleExportUsage
  2. Update line 172 from exports.expand_exports(ModuleExportUsageInfo::all()).await? to:
    let usage = ModuleExportUsage::all().await?;
    let exports = exports.expand_exports(*usage.export_usage).await?;

@lukesandberg lukesandberg force-pushed the export_values branch 2 times, most recently from 5821346 to 8757f22 Compare August 16, 2025 21:40
@lukesandberg lukesandberg force-pushed the export_values branch 3 times, most recently from 08bfac0 to a8077c3 Compare August 18, 2025 20:36
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 11, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

created-by: Turbopack team PRs by the Turbopack team. locked Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants