Skip to content

Comments

Remove MetadataContext type and construct isStaticMetadataRouteFile inside resolveMetadata#90305

Open
gnoff wants to merge 1 commit intojstory/next-invariantsfrom
jstory/simplify-metadata-6
Open

Remove MetadataContext type and construct isStaticMetadataRouteFile inside resolveMetadata#90305
gnoff wants to merge 1 commit intojstory/next-invariantsfrom
jstory/simplify-metadata-6

Conversation

@gnoff
Copy link
Contributor

@gnoff gnoff commented Feb 21, 2026

Stacked on #90270

MetadataContext was a single-field object ({ isStaticMetadataRouteFile: boolean }) that was threaded from createMetadataComponents through the entire metadata resolution chain — six layers of function calls deep — even though every external caller always passed false. The only place that ever set it to true was mergeStaticMetadata, internally.

Instead of threading a constant through the closure and across the call stack, resolveMetadata now constructs the default false value internally. The field is replaced with a plain boolean parameter that only appears in functions that actually distinguish between static and non-static metadata routes.

Deletes metadata-context.tsx and the MetadataContext type.

@gnoff gnoff requested a review from ztanner February 21, 2026 18:36
@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Feb 21, 2026

Failing test suites

Commit: 8e9f650 | About building and testing Next.js

pnpm test-start test/e2e/app-dir/next-invariants/next-invariants.test.ts (job)

  • next-invariants > should have a client component for every invariant key and no extras (DD)
  • next-invariants > should SSR the replaced values in client components (DD)
  • next-invariants > should SSR the replaced values in server components (DD)
  • next-invariants > should hydrate client components in the browser (DD)
  • next-invariants > should read invariants from the runtime global in external packages (DD)
  • next-invariants > should not have any NEXT_INVARIANTS references in client bundles (DD)
  • next-invariants > should not have any NEXT_INVARIANTS references in server bundles (DD)
Expand output

● next-invariants › should have a client component for every invariant key and no extras

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

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

● next-invariants › should SSR the replaced values in client components

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

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

● next-invariants › should SSR the replaced values in server components

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

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

● next-invariants › should hydrate client components in the browser

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

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

● next-invariants › should read invariants from the runtime global in external packages

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

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

● next-invariants › should not have any NEXT_INVARIANTS references in client bundles

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

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

● next-invariants › should not have any NEXT_INVARIANTS references in server bundles

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

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

pnpm test-start test/e2e/app-dir/non-root-project-monorepo/non-root-project-monorepo.test.ts (job)

  • app dir - basic > should have correct cache-control for SSR routes (DD)
  • app dir - basic > should contain framework.json (DD)
  • app dir - basic > outputs correct build-diagnostics.json (DD)
  • app dir - basic > should have correct preferredRegion values in manifest (DD)
  • app dir - basic > should work for catch-all edge page (DD)
  • app dir - basic > should return normalized dynamic route params for catch-all edge page (DD)
  • app dir - basic > should have correct searchParams and params (server) (DD)
  • app dir - basic > should have correct searchParams and params (client) (DD)
  • app dir - basic > should expose app source page on window.next.__internal_src_page for /dashboard (DD)
  • app dir - basic > should expose app source page on window.next.__internal_src_page for /dynamic/category-1/id-2 (DD)
  • app dir - basic > should expose app source page on window.next.__internal_src_page for /dashboard/another (DD)
  • app dir - basic > should update window.next.__internal_src_page on app router transitions (DD)
  • app dir - basic > should successfully detect app route during prefetch (DD)
  • app dir - basic > should encode chunk path correctly (DD)
  • app dir - basic > should match redirects in pages correctly $path (DD)
  • app dir - basic > should match redirects in pages correctly $path (DD)
  • app dir - basic > should match redirects in pages correctly $path (DD)
  • app dir - basic > should match redirects in pages correctly $path (DD)
  • app dir - basic > should match redirects in pages correctly $path (DD)
  • app dir - basic > should match redirects in pages correctly $path (DD)
  • app dir - basic > should not apply client router filter on shallow (DD)
  • app dir - basic > should not share edge workers (DD)
  • app dir - basic > should generate build traces correctly (DD)
  • app dir - basic > should use text/x-component for flight (DD)
  • app dir - basic > should use text/x-component for flight with edge runtime (DD)
  • app dir - basic > should return the vary header from edge runtime (DD)
  • app dir - basic > should return the vary header from pages for flight requests (DD)
  • app dir - basic > should pass props from getServerSideProps in root layout (DD)
  • app dir - basic > should serve from pages (DD)
  • app dir - basic > should serve dynamic route from pages (DD)
  • app dir - basic > should serve from public (DD)
  • app dir - basic > should serve from app (DD)
  • app dir - basic > should ensure the suffix is at the end of the stream (DD)
  • app dir - basic > should serve /index as separate page (DD)
  • app dir - basic > should serve polyfills for browsers that do not support modules (DD)
  • app dir - basic > should include layouts when no direct parent layout (DD)
  • app dir - basic > should use new root layout when provided (DD)
  • app dir - basic > should not create new root layout when nested (optional) (DD)
  • app dir - basic > should include parent document when no direct parent layout (DD)
  • app dir - basic > should not include parent when not in parent directory (DD)
  • app dir - basic > should serve nested parent (DD)
  • app dir - basic > should serve dynamic parameter (DD)
  • app dir - basic > should serve page as a segment name correctly (DD)
  • app dir - basic > should include document html and body (DD)
  • app dir - basic > should not serve when layout is provided but no folder index (DD)
  • app dir - basic > should not rerender layout when navigating between routes in the same layout (DD)
  • app dir - basic > should handle hash in initial url (DD)
  • app dir - basic > > should hard push (DD)
  • app dir - basic > > should hard replace (DD)
  • app dir - basic > > should soft push (DD)
  • app dir - basic > > should soft replace (DD)
  • app dir - basic > > should be soft for back navigation (DD)
  • app dir - basic > > should be soft for forward navigation (DD)
  • app dir - basic > > should allow linking from app page to pages page (DD)
  • app dir - basic > > should navigate to pages dynamic route from pages page if it overlaps with an app page (DD)
  • app dir - basic > > should push to external url (DD)
  • app dir - basic > > should replace to external url (DD)
  • app dir - basic > bootstrap scripts > should only bootstrap with one script, prinitializing the rest (DD)
  • app dir - basic > bootstrap scripts > should successfully bootstrap even when using CSP (DD)
  • app dir - basic > data fetch with response over 16KB with chunked encoding > should load page when fetching a large amount of data (DD)
  • app dir - basic > known bugs > should not share flight data between requests (DD)
  • app dir - basic > known bugs > should handle router.refresh without resetting state (DD)
  • app dir - basic > known bugs > should handle as on next/link (DD)
  • app dir - basic > known bugs > should handle next/link back to initially loaded page (DD)
  • app dir - basic > known bugs > should not do additional pushState when already on the page (DD)
  • app dir - basic > known bugs > should support React cache > server component (DD)
  • app dir - basic > known bugs > should support React cache > server component client-navigation (DD)
  • app dir - basic > known bugs > should support React cache > client component (DD)
  • app dir - basic > known bugs > should support React cache > client component client-navigation (DD)
  • app dir - basic > known bugs > should support React cache > middleware overriding headers (DD)
  • app dir - basic > known bugs > should support React fetch instrumentation > server component (DD)
  • app dir - basic > known bugs > should support React fetch instrumentation > server component client-navigation (DD)
  • app dir - basic > next/script > should support next/script and render in correct order (DD)
  • app dir - basic > next/script > should pass on extra props for beforeInteractive scripts with a src prop (DD)
  • app dir - basic > next/script > should pass on extra props for beforeInteractive scripts without a src prop (DD)
  • app dir - basic > next/script > should insert preload tags for beforeInteractive and afterInteractive scripts (DD)
  • app dir - basic > next/script > should load stylesheets for next/scripts (DD)
  • app dir - basic > next/script > should pass nonce (DD)
  • app dir - basic > next/script > should pass manual nonce (DD)
  • app dir - basic > next/script > should pass manual nonce pages (DD)
  • app dir - basic > next/script > should pass nonce when using next/font (DD)
  • app dir - basic > rewrites > should support rewrites on initial load (DD)
  • app dir - basic > rewrites > should support rewrites on client-side navigation from pages to app with existing pages path (DD)
  • app dir - basic > rewrites > should support rewrites on client-side navigation (DD)
  • app dir - basic > searchParams prop > client component > should have the correct search params (DD)
  • app dir - basic > searchParams prop > client component > should have the correct search params on rewrite (DD)
  • app dir - basic > searchParams prop > client component > should have the correct search params on middleware rewrite (DD)
  • app dir - basic > searchParams prop > server component > should have the correct search params (DD)
  • app dir - basic > searchParams prop > server component > should have the correct search params on rewrite (DD)
  • app dir - basic > searchParams prop > server component > should have the correct search params on middleware rewrite (DD)
  • app dir - basic > server components > should not serve .server.js as a path (DD)
  • app dir - basic > server components > should not serve .client.js as a path (DD)
  • app dir - basic > server components > should serve shared component (DD)
  • app dir - basic > server components > Loading > should render loading.js in initial html for slow page (DD)
  • app dir - basic > server components > Loading > should render loading.js in browser for slow page (DD)
  • app dir - basic > server components > Loading > should render loading.js in initial html for slow layout (DD)
  • app dir - basic > server components > Loading > should render loading.js in browser for slow layout (DD)
  • app dir - basic > server components > Loading > should render loading.js in initial html for slow layout and page (DD)
  • app dir - basic > server components > Loading > should render loading.js in browser for slow layout and page (DD)
  • app dir - basic > server components > catch-all routes > should handle optional segments (DD)
  • app dir - basic > server components > catch-all routes > should handle optional segments root (DD)
  • app dir - basic > server components > catch-all routes > should handle optional catch-all segments link (DD)
  • app dir - basic > server components > catch-all routes > should handle required segments (DD)
  • app dir - basic > server components > catch-all routes > should handle required segments root as not found (DD)
  • app dir - basic > server components > catch-all routes > should handle catch-all segments link (DD)
  • app dir - basic > server components > client components > should have consistent query and params handling (DD)
  • app dir - basic > server components > dynamic routes > should only pass params that apply to the layout (DD)
  • app dir - basic > server components > middleware > should strip internal query parameters from requests to middleware for rewrite (DD)
  • app dir - basic > server components > middleware > should strip internal query parameters from requests to middleware for redirect (DD)
  • app dir - basic > server components > next/router > should support router.back and router.forward (DD)
  • app dir - basic > server components > should include client component layout with server component route > should include it server-side (DD)
  • app dir - basic > server components > should include client component layout with server component route > should include it client-side (DD)
  • app dir - basic > server components > should serve client component > should serve server-side (DD)
  • app dir - basic > server components > should serve client component > should serve client-side (DD)
  • app dir - basic > template component > should render the template that holds state in a client component and reset on navigation (DD)
  • app dir - basic > template component > should render the template that is a server component and rerender on navigation (DD)
Expand output

● app dir - basic › should have correct cache-control for SSR routes

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should contain framework.json

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › outputs correct build-diagnostics.json

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should have correct preferredRegion values in manifest

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should work for catch-all edge page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should return normalized dynamic route params for catch-all edge page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should have correct searchParams and params (server)

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should have correct searchParams and params (client)

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should expose app source page on window.next.__internal_src_page for /dashboard

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should expose app source page on window.next.__internal_src_page for /dynamic/category-1/id-2

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should expose app source page on window.next.__internal_src_page for /dashboard/another

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should update window.next.__internal_src_page on app router transitions

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should successfully detect app route during prefetch

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should encode chunk path correctly

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should match redirects in pages correctly $path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should match redirects in pages correctly $path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should match redirects in pages correctly $path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should match redirects in pages correctly $path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should match redirects in pages correctly $path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should match redirects in pages correctly $path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should not apply client router filter on shallow

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should not share edge workers

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should generate build traces correctly

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should use text/x-component for flight

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should use text/x-component for flight with edge runtime

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should return the vary header from edge runtime

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should return the vary header from pages for flight requests

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should pass props from getServerSideProps in root layout

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve from pages

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve dynamic route from pages

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve from public

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve from app

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should ensure the suffix is at the end of the stream

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve /index as separate page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve polyfills for browsers that do not support modules

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should handle css imports in next/dynamic correctly

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should include layouts when no direct parent layout

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should not include parent when not in parent directory with route in directory

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should use new root layout when provided

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should not create new root layout when nested (optional)

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should include parent document when no direct parent layout

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should not include parent when not in parent directory

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve nested parent

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve dynamic parameter

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should serve page as a segment name correctly

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should include document html and body

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should not serve when layout is provided but no folder index

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should match partial parameters

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › rewrites › should support rewrites on initial load

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › rewrites › should support rewrites on client-side navigation from pages to app with existing pages path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › rewrites › should support rewrites on client-side navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should not rerender layout when navigating between routes in the same layout

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › should handle hash in initial url

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should hard push

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should hard replace

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should soft push

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should soft replace

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should be soft for back navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should be soft for forward navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should allow linking from app page to pages page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should navigate to pages dynamic route from pages page if it overlaps with an app page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should push to external url

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › › should replace to external url

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › should not serve .server.js as a path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › should not serve .client.js as a path

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › should serve shared component

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › dynamic routes › should only pass params that apply to the layout

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › catch-all routes › should handle optional segments

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › catch-all routes › should handle optional segments root

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › catch-all routes › should handle optional catch-all segments link

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › catch-all routes › should handle required segments

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › catch-all routes › should handle required segments root as not found

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › catch-all routes › should handle catch-all segments link

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › should serve client component › should serve server-side

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › should serve client component › should serve client-side

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › should include client component layout with server component route › should include it server-side

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › should include client component layout with server component route › should include it client-side

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

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

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › Loading › should render loading.js in browser for slow page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › Loading › should render loading.js in initial html for slow layout

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › Loading › should render loading.js in browser for slow layout

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › Loading › should render loading.js in initial html for slow layout and page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › Loading › should render loading.js in browser for slow layout and page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › middleware › should strip internal query parameters from requests to middleware for rewrite

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › middleware › should strip internal query parameters from requests to middleware for redirect

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › next/router › should support router.back and router.forward

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › server components › client components › should have consistent query and params handling

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › searchParams prop › client component › should have the correct search params

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › searchParams prop › client component › should have the correct search params on rewrite

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › searchParams prop › client component › should have the correct search params on middleware rewrite

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › searchParams prop › server component › should have the correct search params

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › searchParams prop › server component › should have the correct search params on rewrite

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › searchParams prop › server component › should have the correct search params on middleware rewrite

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › template component › should render the template that holds state in a client component and reset on navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › template component › should render the template that is a server component and rerender on navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React cache › server component

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React cache › server component client-navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React cache › client component

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React cache › client component client-navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React cache › middleware overriding headers

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React fetch instrumentation › server component

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React fetch instrumentation › server component client-navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React fetch instrumentation › client component

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should support React fetch instrumentation › client component client-navigation

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should not share flight data between requests

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should handle router.refresh without resetting state

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should handle as on next/link

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should handle next/link back to initially loaded page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › known bugs › should not do additional pushState when already on the page

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should support next/script and render in correct order

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should pass on extra props for beforeInteractive scripts with a src prop

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should pass on extra props for beforeInteractive scripts without a src prop

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should insert preload tags for beforeInteractive and afterInteractive scripts

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should load stylesheets for next/scripts

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should pass nonce

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should pass manual nonce

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should pass manual nonce pages

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › next/script › should pass nonce when using next/font

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › data fetch with response over 16KB with chunked encoding › should load page when fetching a large amount of data

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › bootstrap scripts › should only bootstrap with one script, prinitializing the rest

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - basic › bootstrap scripts › should successfully bootstrap even when using CSP

next build failed with code/signal 1

  82 |             if (code || signal)
  83 |               reject(
> 84 |                 new Error(
     |                 ^
  85 |                   `next build failed with code/signal ${code || signal}`
  86 |                 )
  87 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:84:17)
  at ChildProcess.cp.emit (../node_modules/.pnpm/cross-spawn@6.0.5/node_modules/cross-spawn/lib/enoent.js:34:29)

@gnoff gnoff force-pushed the jstory/next-invariants branch from d16ea80 to 84c944c Compare February 21, 2026 18:47
…nside resolveMetadata

MetadataContext was a single-field object ({ isStaticMetadataRouteFile: boolean }) that was threaded from createMetadataComponents through the entire metadata resolution chain — six layers of function calls deep — even though every external caller always passed false. The only place that ever set it to true was mergeStaticMetadata, internally.

Instead of threading a constant through the closure and across the call stack, resolveMetadata now constructs the default false value internally. The field is replaced with a plain boolean parameter that only appears in functions that actually distinguish between static and non-static metadata routes.

Deletes metadata-context.tsx and the MetadataContext type.
@gnoff gnoff force-pushed the jstory/simplify-metadata-6 branch from 1c15016 to 8e9f650 Compare February 21, 2026 18:47
@nextjs-bot
Copy link
Collaborator

Stats from current PR

🟢 1 improvement

Metric Canary PR Change Trend
node_modules Size 474 MB 473 MB 🟢 341 kB (0%) ▁▁▁▁▁
📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

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

Build Metrics:

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

Change Thresholds:

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

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 608ms 610ms █▁█▂▃
Cold (Ready in log) 571ms 595ms █▁█▃▃
Cold (First Request) 1.268s 1.274s █▄█▄▄
Warm (Listen) 559ms 611ms █▁█▂▃
Warm (Ready in log) 562ms 587ms █▁█▃▃
Warm (First Request) 471ms 455ms █▁█▃▃
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 455ms 456ms ▁▁▁▁█
Cold (Ready in log) 439ms 456ms ▂▁▁▂█
Cold (First Request) 1.955s 1.942s ▁▁▁▃█
Warm (Listen) 456ms 456ms ▁▁▁▁█
Warm (Ready in log) 439ms 457ms ▂▁▁▂█
Warm (First Request) 1.977s 1.981s ▁▁▁▃█

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 5.563s 5.327s █▁▇▅▅
Cached Build 5.483s 5.251s █▁█▅▅
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 14.050s 13.992s ▁▁▁▄█
Cached Build 14.093s 14.110s ▁▁▁▄█
node_modules Size 474 MB 473 MB 🟢 341 kB (0%) ▁▁▁▁▁
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **399 kB** → **399 kB** ✅ -5 B

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

Server

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

📦 Webpack

Client

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

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 125 kB 125 kB
page.js gzip 253 kB 253 kB
Total 377 kB 377 kB ⚠️ +66 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 614 B 613 B
middleware-r..fest.js gzip 156 B 155 B
middleware.js gzip 43.6 kB 43.9 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 45.2 kB 45.5 kB ⚠️ +241 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 715 B 718 B
Total 715 B 718 B ⚠️ +3 B
Build Cache
Canary PR Change
0.pack gzip 3.96 MB 3.96 MB 🔴 +6.11 kB (+0%)
index.pack gzip 103 kB 103 kB
index.pack.old gzip 101 kB 102 kB
Total 4.16 MB 4.17 MB ⚠️ +6.49 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 318 kB 318 kB
app-page-exp..prod.js gzip 168 kB 168 kB
app-page-tur...dev.js gzip 317 kB 317 kB
app-page-tur..prod.js gzip 168 kB 168 kB
app-page-tur...dev.js gzip 314 kB 314 kB
app-page-tur..prod.js gzip 166 kB 166 kB
app-page.run...dev.js gzip 314 kB 314 kB
app-page.run..prod.js gzip 167 kB 166 kB
app-route-ex...dev.js gzip 70.7 kB 70.7 kB
app-route-ex..prod.js gzip 49.1 kB 49.1 kB
app-route-tu...dev.js gzip 70.7 kB 70.7 kB
app-route-tu..prod.js gzip 49.2 kB 49.2 kB
app-route-tu...dev.js gzip 70.3 kB 70.3 kB
app-route-tu..prod.js gzip 48.9 kB 48.9 kB
app-route.ru...dev.js gzip 70.2 kB 70.2 kB
app-route.ru..prod.js gzip 48.9 kB 48.9 kB
dist_client_...dev.js gzip 324 B 324 B
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
dist_client_...dev.js gzip 317 B 317 B
pages-api-tu...dev.js gzip 43.2 kB 43.2 kB
pages-api-tu..prod.js gzip 32.9 kB 32.9 kB
pages-api.ru...dev.js gzip 43.2 kB 43.2 kB
pages-api.ru..prod.js gzip 32.8 kB 32.8 kB
pages-turbo....dev.js gzip 52.5 kB 52.5 kB
pages-turbo...prod.js gzip 38.5 kB 38.5 kB
pages.runtim...dev.js gzip 52.5 kB 52.5 kB
pages.runtim..prod.js gzip 38.4 kB 38.4 kB
server.runti..prod.js gzip 62 kB 57.1 kB 🟢 4.91 kB (-8%)
Total 2.81 MB 2.8 MB ✅ -5.29 kB
📝 Changed Files (9 files)

Files with changes:

  • app-page-exp..ntime.dev.js
  • app-page-exp..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page.runtime.dev.js
  • app-page.runtime.prod.js
  • server.runtime.prod.js
View diffs
app-page-exp..ntime.dev.js
failed to diff
app-page-exp..time.prod.js
failed to diff
app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js
failed to diff
app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js
failed to diff
app-page.runtime.dev.js
failed to diff
app-page.runtime.prod.js

Diff too large to display

server.runtime.prod.js

Diff too large to display

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants