Skip to content

Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead#91858

Open
bgw wants to merge 1 commit intocanaryfrom
bgw/rm-apply-effects
Open

Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead#91858
bgw wants to merge 1 commit intocanaryfrom
bgw/rm-apply-effects

Conversation

@bgw
Copy link
Copy Markdown
Member

@bgw bgw commented Mar 24, 2026

Having both apply_effects and Effects::apply is confusing.

apply_effect's API seems a bit bad/dangerous because it combines work that should be done inside of a strongly-consistent operation (collecting the effects and reading their Vcs) with work that should be done at the top-level outside of any operation or turbo-task function (applying the effects).

The first commit in this PR removes the apply_effect API and tries to improve documentation, including adding a doctest that compiles.

The second commit in this PR is an LLM-driven refactor to remove the apply_effect callsites.

Copy link
Copy Markdown
Member Author

bgw commented Mar 24, 2026

@bgw bgw changed the title Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead Draft: Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead Mar 24, 2026
@bgw bgw changed the title Draft: Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead Mar 24, 2026
@bgw bgw requested a review from a team March 24, 2026 06:24
@bgw bgw marked this pull request as ready for review March 24, 2026 06:25
@nextjs-bot
Copy link
Copy Markdown
Collaborator

nextjs-bot commented Mar 24, 2026

Failing test suites

Commit: 55e9202 | About building and testing Next.js

pnpm test-start-turbo test/e2e/streaming-ssr/index.test.ts (turbopack) (job)

  • streaming SSR with custom server > should render page correctly under custom server (DD)
Expand output

● streaming SSR with custom server › should render page correctly under custom server

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

  90 |     let server
  91 |     let appPort
> 92 |     beforeAll(async () => {
     |     ^
  93 |       next = await createNext({
  94 |         files: join(__dirname, 'custom-server'),
  95 |       })

  at beforeAll (e2e/streaming-ssr/index.test.ts:92:5)
  at Object.describe (e2e/streaming-ssr/index.test.ts:88:3)

pnpm test-start-turbo test/production/graceful-shutdown/index.test.ts (turbopack) (job)

  • Graceful Shutdown > development (next dev) > should shut down child immediately (DD)
Expand output

● Graceful Shutdown › development (next dev) › should shut down child immediately

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

  50 |       }
  51 |
> 52 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  53 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  54 |     },
  55 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:52:30)
  at it (production/graceful-shutdown/index.test.ts:123:5)
  at runTests (production/graceful-shutdown/index.test.ts:35:5)
  at describe (production/graceful-shutdown/index.test.ts:28:3)
  at Object.describe (production/graceful-shutdown/index.test.ts:27:1)

pnpm test test/integration/telemetry/test/index.test.ts (job)

  • Telemetry CLI > production mode > cli session: babel tooling config (DD)
  • Telemetry CLI > production mode > cli session: custom babel config (plugin) (DD)
  • Telemetry CLI > production mode > cli session: package.json custom babel config (plugin) (DD)
  • Telemetry CLI > production mode > cli session: custom babel config (preset) (DD)
Expand output

● Telemetry CLI › production mode › cli session: babel tooling config

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

  188 |       })
  189 |
> 190 |       it('cli session: babel tooling config', async () => {
      |       ^
  191 |         await fs.rename(
  192 |           path.join(appDir, '.babelrc.default'),
  193 |           path.join(appDir, '.babelrc')

  at it (integration/telemetry/test/index.test.ts:190:7)
  at integration/telemetry/test/index.test.ts:98:56
  at Object.describe (integration/telemetry/test/index.test.ts:13:1)

● Telemetry CLI › production mode › cli session: custom babel config (plugin)

TypeError: Cannot read properties of null (reading 'pop')

  231 |
  232 |         const event = /NEXT_CLI_SESSION_STARTED[\s\S]+?{([\s\S]+?)}/
> 233 |           .exec(stderr)
      |                 ^
  234 |           .pop()
  235 |
  236 |         expect(event).toMatch(/"hasNextConfig": false/)

  at Object.stderr (integration/telemetry/test/index.test.ts:233:17)

● Telemetry CLI › production mode › cli session: package.json custom babel config (plugin)

TypeError: Cannot read properties of null (reading 'pop')

  257 |
  258 |         const event = /NEXT_CLI_SESSION_STARTED[\s\S]+?{([\s\S]+?)}/
> 259 |           .exec(stderr)
      |                 ^
  260 |           .pop()
  261 |
  262 |         expect(event).toMatch(/"hasNextConfig": false/)

  at Object.stderr (integration/telemetry/test/index.test.ts:259:17)

● Telemetry CLI › production mode › cli session: custom babel config (preset)

ENOENT: no such file or directory, rename '/root/actions-runner/_work/next.js/next.js/test/integration/telemetry/.babelrc' -> '/root/actions-runner/_work/next.js/next.js/test/integration/telemetry/.babelrc.preset'

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

  • next-config-ts-import-json-cjs > should support import json (CJS) (DD)
Expand output

● next-config-ts-import-json-cjs › should support import json (CJS)

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

  12 |   })
  13 |
> 14 |   it('should support import json (CJS)', async () => {
     |   ^
  15 |     const $ = await next.render$('/')
  16 |     expect($('p').text()).toBe('foo')
  17 |   })

  at it (e2e/app-dir/next-config-ts-native-mts/import-json/next-config-ts-import-json-cjs.test.ts:14:3)
  at Object.describe (e2e/app-dir/next-config-ts-native-mts/import-json/next-config-ts-import-json-cjs.test.ts:3:1)

pnpm test-dev test/e2e/app-dir/next-config-ts-native-ts/export-default/next-config-ts-export-default-cjs.test.ts (job)

  • next-config-ts-import-json-cjs > should support import json (CJS) (DD)
Expand output

● next-config-ts-import-json-cjs › should support import json (CJS)

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

  12 |   })
  13 |
> 14 |   it('should support import json (CJS)', async () => {
     |   ^
  15 |     const $ = await next.render$('/')
  16 |     expect($('p').text()).toBe('foo')
  17 |   })

  at it (e2e/app-dir/next-config-ts-native-mts/import-json/next-config-ts-import-json-cjs.test.ts:14:3)
  at Object.describe (e2e/app-dir/next-config-ts-native-mts/import-json/next-config-ts-import-json-cjs.test.ts:3:1)

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

  • Invalid hrefs > development mode > should not have a race condition with a click handler (DD)
  • Invalid hrefs > development mode > should not show error for function component with forwardRef (DD)
  • Invalid hrefs > development mode > should not show error for class component as child of next/link (DD)
  • Invalid hrefs > development mode > should handle child ref with React.createRef (DD)
  • Invalid hrefs > development mode > should handle child ref that is a function (DD)
  • Invalid hrefs > development mode > should handle child ref that is a function that returns a cleanup function (DD)
Expand output

● Invalid hrefs › development mode › should not have a race condition with a click handler

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

  61 | function runCommonTests() {
  62 |   // See https://github.com/vercel/next.js/issues/18437
> 63 |   it('should not have a race condition with a click handler', async () => {
     |   ^
  64 |     const browser = await webdriver(appPort, '/click-away-race-condition')
  65 |     await browser.elementByCss('#click-me').click()
  66 |     await browser.waitForElementByCss('#the-menu')

  at it (integration/link-ref-app/test/index.test.ts:63:3)
  at runCommonTests (integration/link-ref-app/test/index.test.ts:80:7)
  at integration/link-ref-app/test/index.test.ts:71:58
  at Object.describe (integration/link-ref-app/test/index.test.ts:70:1)

● Invalid hrefs › development mode › should not show error for function component with forwardRef

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

  80 |       runCommonTests()
  81 |
> 82 |       it('should not show error for function component with forwardRef', async () => {
     |       ^
  83 |         await noError('/function')
  84 |       })
  85 |

  at it (integration/link-ref-app/test/index.test.ts:82:7)
  at integration/link-ref-app/test/index.test.ts:71:58
  at Object.describe (integration/link-ref-app/test/index.test.ts:70:1)

● Invalid hrefs › development mode › should not show error for class component as child of next/link

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

  84 |       })
  85 |
> 86 |       it('should not show error for class component as child of next/link', async () => {
     |       ^
  87 |         await noError('/class')
  88 |       })
  89 |

  at it (integration/link-ref-app/test/index.test.ts:86:7)
  at integration/link-ref-app/test/index.test.ts:71:58
  at Object.describe (integration/link-ref-app/test/index.test.ts:70:1)

● Invalid hrefs › development mode › should handle child ref with React.createRef

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

  88 |       })
  89 |
> 90 |       it('should handle child ref with React.createRef', async () => {
     |       ^
  91 |         await noError('/child-ref')
  92 |       })
  93 |

  at it (integration/link-ref-app/test/index.test.ts:90:7)
  at integration/link-ref-app/test/index.test.ts:71:58
  at Object.describe (integration/link-ref-app/test/index.test.ts:70:1)

● Invalid hrefs › development mode › should handle child ref that is a function

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

  92 |       })
  93 |
> 94 |       it('should handle child ref that is a function', async () => {
     |       ^
  95 |         await noError('/child-ref-func')
  96 |       })
  97 |

  at it (integration/link-ref-app/test/index.test.ts:94:7)
  at integration/link-ref-app/test/index.test.ts:71:58
  at Object.describe (integration/link-ref-app/test/index.test.ts:70:1)

● Invalid hrefs › development mode › should handle child ref that is a function that returns a cleanup function

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

   96 |       })
   97 |
>  98 |       it('should handle child ref that is a function that returns a cleanup function', async () => {
      |       ^
   99 |         await noError('/child-ref-func-cleanup')
  100 |       })
  101 |     }

  at it (integration/link-ref-app/test/index.test.ts:98:7)
  at integration/link-ref-app/test/index.test.ts:71:58
  at Object.describe (integration/link-ref-app/test/index.test.ts:70:1)

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

  • instant-nav-panel > should open panel in waiting state without setting cookie (DD)
  • instant-nav-panel > should show client nav state after clicking Start and navigating (DD)
  • instant-nav-panel > should show loading skeleton during SPA navigation after clicking Start (DD)
  • instant-nav-panel > should auto-open panel on page load when cookie is already set (DD)
  • instant-nav-panel > should not set cookie when closing panel from waiting state (DD)
Expand output

● instant-nav-panel › should open panel in waiting state without setting cookie

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:35383/", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/app-dir/instant-navs-devtools/instant-navs-devtools.test.ts:73:21)

● instant-nav-panel › should show client nav state after clicking Start and navigating

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:35383/", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/app-dir/instant-navs-devtools/instant-navs-devtools.test.ts:100:21)

● instant-nav-panel › should show loading skeleton during SPA navigation after clicking Start

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:35383/", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/app-dir/instant-navs-devtools/instant-navs-devtools.test.ts:142:21)

● instant-nav-panel › should auto-open panel on page load when cookie is already set

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:35383/", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/app-dir/instant-navs-devtools/instant-navs-devtools.test.ts:174:21)

● instant-nav-panel › should not set cookie when closing panel from waiting state

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:35383/", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/app-dir/instant-navs-devtools/instant-navs-devtools.test.ts:195:21)

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

  • Dynamic Routing > development mode > should render from pages (DD)
  • Dynamic Routing > development mode > should render not render from src/pages (DD)
Expand output

● Dynamic Routing › development mode › should render from pages

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

  16 |
  17 | function runTests(dev: boolean) {
> 18 |   it('should render from pages', async () => {
     |   ^
  19 |     const html = await renderViaHTTP(appPort, '/')
  20 |     expect(html).toMatch(/PAGES/)
  21 |   })

  at it (integration/src-dir-support-double-dir/test/index.test.ts:18:3)
  at runTests (integration/src-dir-support-double-dir/test/index.test.ts:39:7)
  at integration/src-dir-support-double-dir/test/index.test.ts:30:58
  at Object.describe (integration/src-dir-support-double-dir/test/index.test.ts:29:1)

● Dynamic Routing › development mode › should render not render from src/pages

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

  21 |   })
  22 |
> 23 |   it('should render not render from src/pages', async () => {
     |   ^
  24 |     const html = await renderViaHTTP(appPort, '/hello')
  25 |     expect(html).toMatch(/404/)
  26 |   })

  at it (integration/src-dir-support-double-dir/test/index.test.ts:23:3)
  at runTests (integration/src-dir-support-double-dir/test/index.test.ts:39:7)
  at integration/src-dir-support-double-dir/test/index.test.ts:30:58
  at Object.describe (integration/src-dir-support-double-dir/test/index.test.ts:29:1)

pnpm test-dev-turbo test/development/app-dir/typed-env/typed-env-prod.test.ts (turbopack) (job)

  • HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} > delete a page and add it back > should load the page properly (DD)
  • HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} > editing a page > should detect the changes and display it (DD)
  • HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} > editing a page > should not reload unrelated pages (DD)
  • HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} > editing a page > should update styles correctly (DD)
  • HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} > editing a page > should update styles in a stateful component correctly (DD)
  • HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} > editing a page > should update styles in a dynamic component correctly (DD)
  • HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} > editing a page > should not full reload when nonlatin characters are used (DD)
Expand output

● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › delete a page and add it back › should load the page properly

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:38739/docs/hmr/contact", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-hot-module-reload-hmr-test.util.ts:20:23)

● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should detect the changes and display it

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:38739/docs/hmr/about", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-hot-module-reload-hmr-test.util.ts:63:23)

● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should not reload unrelated pages

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:38739/docs/hmr/counter", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-hot-module-reload-hmr-test.util.ts:94:23)

● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should update styles correctly

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:38739/docs/hmr/style", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-hot-module-reload-hmr-test.util.ts:129:23)

● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should update styles in a stateful component correctly

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:38739/docs/hmr/style-stateful-component", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-hot-module-reload-hmr-test.util.ts:159:23)

● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should update styles in a dynamic component correctly

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:38739/docs/hmr/style-dynamic-component", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-hot-module-reload-hmr-test.util.ts:187:23)

● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should not full reload when nonlatin characters are used

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:38739/docs/hmr/nonlatin", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-hot-module-reload-hmr-test.util.ts:254:23)

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

  • mcp-server get_server_action_by_id tool > should return action details via get_server_action_by_id tool (DD)
  • mcp-server get_server_action_by_id tool > should return error for non-existent action ID (DD)
  • mcp-server get_server_action_by_id tool > should return inline server action details (DD)
Expand output

● mcp-server get_server_action_by_id tool › should return action details via get_server_action_by_id tool

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

   9 |   })
  10 |
> 11 |   it('should return action details via get_server_action_by_id tool', async () => {
     |   ^
  12 |     const mcpEndpoint = `${next.url}/_next/mcp`
  13 |
  14 |     // Visit the page to trigger action registration

  at it (development/mcp-server/mcp-server-get-server-action-by-id.test.ts:11:3)
  at Object.describe (development/mcp-server/mcp-server-get-server-action-by-id.test.ts:6:1)

● mcp-server get_server_action_by_id tool › should return error for non-existent action ID

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

  71 |   })
  72 |
> 73 |   it('should return error for non-existent action ID', async () => {
     |   ^
  74 |     const mcpEndpoint = `${next.url}/_next/mcp`
  75 |
  76 |     // Call get_server_action_by_id tool with non-existent ID

  at it (development/mcp-server/mcp-server-get-server-action-by-id.test.ts:73:3)
  at Object.describe (development/mcp-server/mcp-server-get-server-action-by-id.test.ts:6:1)

● mcp-server get_server_action_by_id tool › should return inline server action details

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

  113 |   })
  114 |
> 115 |   it('should return inline server action details', async () => {
      |   ^
  116 |     const mcpEndpoint = `${next.url}/_next/mcp`
  117 |
  118 |     // Visit the page to trigger action registration

  at it (development/mcp-server/mcp-server-get-server-action-by-id.test.ts:115:3)
  at Object.describe (development/mcp-server/mcp-server-get-server-action-by-id.test.ts:6:1)

pnpm test-dev-turbo test/development/app-dir/cache-indicator/cache-indicator.test.ts (turbopack) (job)

  • getServerSideProps returns notFound: true > should not poll indefinitely (DD)
Expand output

● getServerSideProps returns notFound: true › should not poll indefinitely

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:40133/", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/gssp-notfound/index.test.ts:28:21)

pnpm test test/integration/development-hmr-refresh/test/index.test.ts (turbopack) (job)

  • Image Component basePath Tests > development mode > should load the images (DD)
  • Image Component basePath Tests > development mode > should update the image on src change (DD)
  • Image Component basePath Tests > development mode > should work when using flexbox (DD)
  • Image Component basePath Tests > development mode > should show missing src error (DD)
  • Image Component basePath Tests > development mode > should show invalid src error (DD)
  • Image Component basePath Tests > development mode > should show invalid src error when protocol-relative (DD)
  • Image Component basePath Tests > development mode > should correctly ignore prose styles (DD)
Expand output

● Image Component basePath Tests › development mode › should load the images

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

  53 |
  54 | function runTests(mode: 'dev' | 'server') {
> 55 |   it('should load the images', async () => {
     |   ^
  56 |     let browser
  57 |     try {
  58 |       browser = await webdriver(appPort, '/docs')

  at it (integration/next-image-new/base-path/test/index.test.ts:55:3)
  at runTests (integration/next-image-new/base-path/test/index.test.ts:204:7)
  at integration/next-image-new/base-path/test/index.test.ts:193:58
  at Object.describe (integration/next-image-new/base-path/test/index.test.ts:192:1)

● Image Component basePath Tests › development mode › should update the image on src change

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

  80 |   })
  81 |
> 82 |   it('should update the image on src change', async () => {
     |   ^
  83 |     let browser
  84 |     try {
  85 |       browser = await webdriver(appPort, '/docs/update')

  at it (integration/next-image-new/base-path/test/index.test.ts:82:3)
  at runTests (integration/next-image-new/base-path/test/index.test.ts:204:7)
  at integration/next-image-new/base-path/test/index.test.ts:193:58
  at Object.describe (integration/next-image-new/base-path/test/index.test.ts:192:1)

● Image Component basePath Tests › development mode › should work when using flexbox

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

  103 |   })
  104 |
> 105 |   it('should work when using flexbox', async () => {
      |   ^
  106 |     let browser
  107 |     try {
  108 |       browser = await webdriver(appPort, '/docs/flex')

  at it (integration/next-image-new/base-path/test/index.test.ts:105:3)
  at runTests (integration/next-image-new/base-path/test/index.test.ts:204:7)
  at integration/next-image-new/base-path/test/index.test.ts:193:58
  at Object.describe (integration/next-image-new/base-path/test/index.test.ts:192:1)

● Image Component basePath Tests › development mode › should show missing src error

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

  125 |
  126 |   if (mode === 'dev') {
> 127 |     it('should show missing src error', async () => {
      |     ^
  128 |       const browser = await webdriver(appPort, '/docs/missing-src')
  129 |
  130 |       await waitForNoRedbox(browser)

  at it (integration/next-image-new/base-path/test/index.test.ts:127:5)
  at runTests (integration/next-image-new/base-path/test/index.test.ts:204:7)
  at integration/next-image-new/base-path/test/index.test.ts:193:58
  at Object.describe (integration/next-image-new/base-path/test/index.test.ts:192:1)

● Image Component basePath Tests › development mode › should show invalid src error

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

  135 |     })
  136 |
> 137 |     it('should show invalid src error', async () => {
      |     ^
  138 |       const browser = await webdriver(appPort, '/docs/invalid-src')
  139 |
  140 |       await waitForRedbox(browser)

  at it (integration/next-image-new/base-path/test/index.test.ts:137:5)
  at runTests (integration/next-image-new/base-path/test/index.test.ts:204:7)
  at integration/next-image-new/base-path/test/index.test.ts:193:58
  at Object.describe (integration/next-image-new/base-path/test/index.test.ts:192:1)

● Image Component basePath Tests › development mode › should show invalid src error when protocol-relative

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

  144 |     })
  145 |
> 146 |     it('should show invalid src error when protocol-relative', async () => {
      |     ^
  147 |       const browser = await webdriver(
  148 |         appPort,
  149 |         '/docs/invalid-src-proto-relative'

  at it (integration/next-image-new/base-path/test/index.test.ts:146:5)
  at runTests (integration/next-image-new/base-path/test/index.test.ts:204:7)
  at integration/next-image-new/base-path/test/index.test.ts:193:58
  at Object.describe (integration/next-image-new/base-path/test/index.test.ts:192:1)

● Image Component basePath Tests › development mode › should correctly ignore prose styles

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

  157 |   }
  158 |
> 159 |   it('should correctly ignore prose styles', async () => {
      |   ^
  160 |     let browser
  161 |     try {
  162 |       browser = await webdriver(appPort, '/docs/prose')

  at it (integration/next-image-new/base-path/test/index.test.ts:159:3)
  at runTests (integration/next-image-new/base-path/test/index.test.ts:204:7)
  at integration/next-image-new/base-path/test/index.test.ts:193:58
  at Object.describe (integration/next-image-new/base-path/test/index.test.ts:192:1)

pnpm test test/integration/config-mjs/test/index.test.ts (turbopack) (job)

  • Invalid hrefs > development mode > does not show error when mailto: is used as href on Link (DD)
  • Invalid hrefs > development mode > does not show error when https:// is used as href in Link (DD)
  • Invalid hrefs > development mode > does not show error when exotic protocols are used in href in Link (DD)
  • Invalid hrefs > development mode > shows error when dynamic route mismatch is used on Link (DD)
  • Invalid hrefs > development mode > shows error when internal href is used with external as (DD)
  • Invalid hrefs > development mode > does not throw error when dynamic route mismatch is used on Link and params are manually provided (DD)
  • Invalid hrefs > development mode > doesn't fail on invalid url (DD)
  • Invalid hrefs > development mode > shows warning when dynamic route mismatch is used on Link (DD)
Expand output

● Invalid hrefs › development mode › does not show error when mailto: is used as href on Link

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

  165 |       afterAll(() => killApp(app))
  166 |
> 167 |       it('does not show error when mailto: is used as href on Link', async () => {
      |       ^
  168 |         await noError('/first')
  169 |       })
  170 |

  at it (integration/invalid-href/test/index.test.ts:167:7)
  at integration/invalid-href/test/index.test.ts:158:58
  at Object.describe (integration/invalid-href/test/index.test.ts:86:1)

● Invalid hrefs › development mode › does not show error when https:// is used as href in Link

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

  169 |       })
  170 |
> 171 |       it('does not show error when https:// is used as href in Link', async () => {
      |       ^
  172 |         await noError('/second')
  173 |       })
  174 |

  at it (integration/invalid-href/test/index.test.ts:171:7)
  at integration/invalid-href/test/index.test.ts:158:58
  at Object.describe (integration/invalid-href/test/index.test.ts:86:1)

● Invalid hrefs › development mode › does not show error when exotic protocols are used in href in Link

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

  173 |       })
  174 |
> 175 |       it('does not show error when exotic protocols are used in href in Link', async () => {
      |       ^
  176 |         const browser = await webdriver(appPort, '/exotic-href')
  177 |
  178 |         expect(

  at it (integration/invalid-href/test/index.test.ts:175:7)
  at integration/invalid-href/test/index.test.ts:158:58
  at Object.describe (integration/invalid-href/test/index.test.ts:86:1)

● Invalid hrefs › development mode › shows error when dynamic route mismatch is used on Link

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

  182 |
  183 |       // eslint-disable-next-line jest/no-identical-title
> 184 |       it('shows error when dynamic route mismatch is used on Link', async () => {
      |       ^
  185 |         await showsError(
  186 |           '/dynamic-route-mismatch',
  187 |           /The provided `as` value \(\/blog\/post-1\) is incompatible with the `href` value \(\/\[post\]\)/,

  at it (integration/invalid-href/test/index.test.ts:184:7)
  at integration/invalid-href/test/index.test.ts:158:58
  at Object.describe (integration/invalid-href/test/index.test.ts:86:1)

● Invalid hrefs › development mode › shows error when internal href is used with external as

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

  190 |       })
  191 |
> 192 |       it('shows error when internal href is used with external as', async () => {
      |       ^
  193 |         await showsError(
  194 |           '/invalid-relative',
  195 |           /Invalid href: "\/second" and as: "mailto:hello@example\.com", received relative href and external as/,

  at it (integration/invalid-href/test/index.test.ts:192:7)
  at integration/invalid-href/test/index.test.ts:158:58
  at Object.describe (integration/invalid-href/test/index.test.ts:86:1)

● Invalid hrefs › development mode › does not throw error when dynamic route mismatch is used on Link and params are manually provided

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

  198 |       })
  199 |
> 200 |       it('does not throw error when dynamic route mismatch is used on Link and params are manually provided', async () => {
      |       ^
  201 |         await noError('/dynamic-route-mismatch-manual', true)
  202 |       })
  203 |

  at it (integration/invalid-href/test/index.test.ts:200:7)
  at integration/invalid-href/test/index.test.ts:158:58
  at Object.describe (integration/invalid-href/test/index.test.ts:86:1)

● Invalid hrefs › development mode › doesn't fail on invalid url

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

  203 |
  204 |       // eslint-disable-next-line jest/no-identical-title
> 205 |       it("doesn't fail on invalid url", async () => {
      |       ^
  206 |         await noError('/third')
  207 |       })
  208 |

  at it (integration/invalid-href/test/index.test.ts:205:7)
  at integration/invalid-href/test/index.test.ts:158:58
  at Object.describe (integration/invalid-href/test/index.test.ts:86:1)

● Invalid hrefs › development mode › shows warning when dynamic route mismatch is used on Link

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

  207 |       })
  208 |
> 209 |       it('shows warning when dynamic route mismatch is used on Link', async () => {
      |       ^
  210 |         await showsError(
  211 |           '/dynamic-route-mismatch',
  212 |           /Mismatching `as` and `href` failed to manually provide the params: post in the `href`'s `query`/,

  at it (integration/invalid-href/test/index.test.ts:209:7)
  at integration/invalid-href/test/index.test.ts:158:58
  at Object.describe (integration/invalid-href/test/index.test.ts:86:1)

pnpm test test/integration/cli/test/index.test.ts (turbopack) (job)

  • Auto Export > dev > Supports commonjs 1 (DD)
  • Auto Export > dev > Supports commonjs 2 (DD)
  • Auto Export > dev > Refreshes query on mount (DD)
  • Auto Export > dev > should update asPath after mount (DD)
  • Auto Export > dev > should not replace URL with page name while asPath is delayed (DD)
  • Auto Export > dev > should not show hydration warning from mismatching asPath (DD)
Expand output

● Auto Export › dev › Supports commonjs 1

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

  17 |
  18 | const runTests = () => {
> 19 |   it('Supports commonjs 1', async () => {
     |   ^
  20 |     const browser = await webdriver(appPort, '/commonjs1')
  21 |     const html = await browser.eval('document.body.innerHTML')
  22 |     expect(html).toMatch(/test1/)

  at it (integration/auto-export/test/index.test.ts:19:3)
  at runTests (integration/auto-export/test/index.test.ts:85:5)
  at describe (integration/auto-export/test/index.test.ts:77:3)
  at Object.describe (integration/auto-export/test/index.test.ts:59:1)

● Auto Export › dev › Supports commonjs 2

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

  25 |   })
  26 |
> 27 |   it('Supports commonjs 2', async () => {
     |   ^
  28 |     const browser = await webdriver(appPort, '/commonjs2')
  29 |     const html = await browser.eval('document.body.innerHTML')
  30 |     expect(html).toMatch(/test2/)

  at it (integration/auto-export/test/index.test.ts:27:3)
  at runTests (integration/auto-export/test/index.test.ts:85:5)
  at describe (integration/auto-export/test/index.test.ts:77:3)
  at Object.describe (integration/auto-export/test/index.test.ts:59:1)

● Auto Export › dev › Refreshes query on mount

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

  33 |   })
  34 |
> 35 |   it('Refreshes query on mount', async () => {
     |   ^
  36 |     const browser = await webdriver(appPort, '/post-1')
  37 |     await check(() => browser.eval('document.body.innerHTML'), /post.*post-1/)
  38 |     const html = await browser.eval('document.body.innerHTML')

  at it (integration/auto-export/test/index.test.ts:35:3)
  at runTests (integration/auto-export/test/index.test.ts:85:5)
  at describe (integration/auto-export/test/index.test.ts:77:3)
  at Object.describe (integration/auto-export/test/index.test.ts:59:1)

● Auto Export › dev › should update asPath after mount

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

  40 |   })
  41 |
> 42 |   it('should update asPath after mount', async () => {
     |   ^
  43 |     const browser = await webdriver(appPort, '/zeit/cmnt-2')
  44 |     await check(
  45 |       () => browser.eval(`document.documentElement.innerHTML`),

  at it (integration/auto-export/test/index.test.ts:42:3)
  at runTests (integration/auto-export/test/index.test.ts:85:5)
  at describe (integration/auto-export/test/index.test.ts:77:3)
  at Object.describe (integration/auto-export/test/index.test.ts:59:1)

● Auto Export › dev › should not replace URL with page name while asPath is delayed

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

  48 |   })
  49 |
> 50 |   it('should not replace URL with page name while asPath is delayed', async () => {
     |   ^
  51 |     const browser = await webdriver(appPort, '/zeit/cmnt-1')
  52 |     const val = await browser.eval(`!!window.pathnames.find(function(p) {
  53 |       return p !== '/zeit/cmnt-1'

  at it (integration/auto-export/test/index.test.ts:50:3)
  at runTests (integration/auto-export/test/index.test.ts:85:5)
  at describe (integration/auto-export/test/index.test.ts:77:3)
  at Object.describe (integration/auto-export/test/index.test.ts:59:1)

● Auto Export › dev › should not show hydration warning from mismatching asPath

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

  85 |     runTests()
  86 |
> 87 |     it('should not show hydration warning from mismatching asPath', async () => {
     |     ^
  88 |       const browser = await webdriver(appPort, '/zeit/cmnt-1')
  89 |       const caughtWarns = await browser.eval(`window.caughtWarns`)
  90 |       expect(caughtWarns).toEqual([])

  at it (integration/auto-export/test/index.test.ts:87:5)
  at describe (integration/auto-export/test/index.test.ts:77:3)
  at Object.describe (integration/auto-export/test/index.test.ts:59:1)

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

  • TypeScript Features > default behavior > should render the page (DD)
  • TypeScript Features > default behavior > should render the cookies page (DD)
  • TypeScript Features > default behavior > should render the cookies page with cookies (DD)
  • TypeScript Features > default behavior > should render the generics page (DD)
  • TypeScript Features > default behavior > should render the angle bracket type assertions page (DD)
  • TypeScript Features > default behavior > should respond to sync API route correctly (DD)
  • TypeScript Features > default behavior > should respond to async API route correctly (DD)
  • TypeScript Features > default behavior > should not fail to render when an inactive page has an error (DD)
Expand output

● TypeScript Features › default behavior › should render the page

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

  39 |     afterAll(() => killApp(app))
  40 |
> 41 |     it('should render the page', async () => {
     |     ^
  42 |       const $ = await get$('/hello')
  43 |       expect($('body').text()).toMatch(/Hello World/)
  44 |       expect($('body').text()).toMatch(/1000000000000/)

  at it (integration/typescript/test/index.test.ts:41:5)
  at describe (integration/typescript/test/index.test.ts:30:3)
  at Object.describe (integration/typescript/test/index.test.ts:29:1)

● TypeScript Features › default behavior › should render the cookies page

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

  45 |     })
  46 |
> 47 |     it('should render the cookies page', async () => {
     |     ^
  48 |       const $ = await get$('/ssr/cookies')
  49 |       expect($('#cookies').text()).toBe('{}')
  50 |     })

  at it (integration/typescript/test/index.test.ts:47:5)
  at describe (integration/typescript/test/index.test.ts:30:3)
  at Object.describe (integration/typescript/test/index.test.ts:29:1)

● TypeScript Features › default behavior › should render the cookies page with cookies

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

  50 |     })
  51 |
> 52 |     it('should render the cookies page with cookies', async () => {
     |     ^
  53 |       const $ = await get$(
  54 |         '/ssr/cookies',
  55 |         {},

  at it (integration/typescript/test/index.test.ts:52:5)
  at describe (integration/typescript/test/index.test.ts:30:3)
  at Object.describe (integration/typescript/test/index.test.ts:29:1)

● TypeScript Features › default behavior › should render the generics page

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

  63 |     })
  64 |
> 65 |     it('should render the generics page', async () => {
     |     ^
  66 |       const $ = await get$('/generics')
  67 |       expect($('#value').text()).toBe('Hello World from Generic')
  68 |     })

  at it (integration/typescript/test/index.test.ts:65:5)
  at describe (integration/typescript/test/index.test.ts:30:3)
  at Object.describe (integration/typescript/test/index.test.ts:29:1)

● TypeScript Features › default behavior › should render the angle bracket type assertions page

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

  68 |     })
  69 |
> 70 |     it('should render the angle bracket type assertions page', async () => {
     |     ^
  71 |       const $ = await get$('/angle-bracket-type-assertions')
  72 |       expect($('#value').text()).toBe('test')
  73 |     })

  at it (integration/typescript/test/index.test.ts:70:5)
  at describe (integration/typescript/test/index.test.ts:30:3)
  at Object.describe (integration/typescript/test/index.test.ts:29:1)

● TypeScript Features › default behavior › should respond to sync API route correctly

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

  88 |     })
  89 |
> 90 |     it('should respond to sync API route correctly', async () => {
     |     ^
  91 |       const data = JSON.parse(await renderViaHTTP(appPort, '/api/sync'))
  92 |       expect(data).toEqual({ code: 'ok' })
  93 |     })

  at it (integration/typescript/test/index.test.ts:90:5)
  at describe (integration/typescript/test/index.test.ts:30:3)
  at Object.describe (integration/typescript/test/index.test.ts:29:1)

● TypeScript Features › default behavior › should respond to async API route correctly

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

  93 |     })
  94 |
> 95 |     it('should respond to async API route correctly', async () => {
     |     ^
  96 |       const data = JSON.parse(await renderViaHTTP(appPort, '/api/async'))
  97 |       expect(data).toEqual({ code: 'ok' })
  98 |     })

  at it (integration/typescript/test/index.test.ts:95:5)
  at describe (integration/typescript/test/index.test.ts:30:3)
  at Object.describe (integration/typescript/test/index.test.ts:29:1)

● TypeScript Features › default behavior › should not fail to render when an inactive page has an error

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

   98 |     })
   99 |
> 100 |     it('should not fail to render when an inactive page has an error', async () => {
      |     ^
  101 |       await killApp(app)
  102 |       let evilFile = join(appDir, 'pages', 'evil.tsx')
  103 |       try {

  at it (integration/typescript/test/index.test.ts:100:5)
  at describe (integration/typescript/test/index.test.ts:30:3)
  at Object.describe (integration/typescript/test/index.test.ts:29:1)

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

  • Preview mode with fallback pages > development mode > should get preview cookie correctly (DD)
  • Preview mode with fallback pages > development mode > should not write preview index SSG page to cache (DD)
  • Preview mode with fallback pages > development mode > should not write preview dynamic prerendered SSG page to cache no fallback (DD)
  • Preview mode with fallback pages > development mode > should not write preview dynamic SSG page to cache no fallback (DD)
  • Preview mode with fallback pages > development mode > should not write preview dynamic prerendered SSG page to cache with fallback (DD)
  • Preview mode with fallback pages > development mode > should not write preview dynamic non-prerendered SSG page to cache with fallback (DD)
Expand output

● Preview mode with fallback pages › development mode › should get preview cookie correctly

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

  28 |
  29 | function runTests(isDev: boolean) {
> 30 |   it('should get preview cookie correctly', async () => {
     |   ^
  31 |     const res = await fetchViaHTTP(appPort, '/api/enable')
  32 |     previewCookie = ''
  33 |

  at it (integration/preview-fallback/test/index.test.ts:30:3)
  at runTests (integration/preview-fallback/test/index.test.ts:277:7)
  at integration/preview-fallback/test/index.test.ts:268:58
  at Object.describe (integration/preview-fallback/test/index.test.ts:267:1)

● Preview mode with fallback pages › development mode › should not write preview index SSG page to cache

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

  53 |   })
  54 |
> 55 |   it('should not write preview index SSG page to cache', async () => {
     |   ^
  56 |     const html = await renderViaHTTP(appPort, '/')
  57 |     const props = JSON.parse(cheerio.load(html)('#props').text())
  58 |

  at it (integration/preview-fallback/test/index.test.ts:55:3)
  at runTests (integration/preview-fallback/test/index.test.ts:277:7)
  at integration/preview-fallback/test/index.test.ts:268:58
  at Object.describe (integration/preview-fallback/test/index.test.ts:267:1)

● Preview mode with fallback pages › development mode › should not write preview dynamic prerendered SSG page to cache no fallback

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

  93 |   })
  94 |
> 95 |   it('should not write preview dynamic prerendered SSG page to cache no fallback', async () => {
     |   ^
  96 |     const html = await renderViaHTTP(appPort, '/no-fallback/first')
  97 |     const props = JSON.parse(cheerio.load(html)('#props').text())
  98 |

  at it (integration/preview-fallback/test/index.test.ts:95:3)
  at runTests (integration/preview-fallback/test/index.test.ts:277:7)
  at integration/preview-fallback/test/index.test.ts:268:58
  at Object.describe (integration/preview-fallback/test/index.test.ts:267:1)

● Preview mode with fallback pages › development mode › should not write preview dynamic SSG page to cache no fallback

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

  137 |   })
  138 |
> 139 |   it('should not write preview dynamic SSG page to cache no fallback', async () => {
      |   ^
  140 |     const res1 = await fetchViaHTTP(appPort, '/no-fallback/second')
  141 |     expect(res1.status).toBe(404)
  142 |

  at it (integration/preview-fallback/test/index.test.ts:139:3)
  at runTests (integration/preview-fallback/test/index.test.ts:277:7)
  at integration/preview-fallback/test/index.test.ts:268:58
  at Object.describe (integration/preview-fallback/test/index.test.ts:267:1)

● Preview mode with fallback pages › development mode › should not write preview dynamic prerendered SSG page to cache with fallback

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

  163 |   })
  164 |
> 165 |   it('should not write preview dynamic prerendered SSG page to cache with fallback', async () => {
      |   ^
  166 |     const html = await renderViaHTTP(appPort, '/fallback/first')
  167 |     const props = JSON.parse(cheerio.load(html)('#props').text())
  168 |

  at it (integration/preview-fallback/test/index.test.ts:165:3)
  at runTests (integration/preview-fallback/test/index.test.ts:277:7)
  at integration/preview-fallback/test/index.test.ts:268:58
  at Object.describe (integration/preview-fallback/test/index.test.ts:267:1)

● Preview mode with fallback pages › development mode › should not write preview dynamic non-prerendered SSG page to cache with fallback

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

  207 |   })
  208 |
> 209 |   it('should not write preview dynamic non-prerendered SSG page to cache with fallback', async () => {
      |   ^
  210 |     let browser = await webdriver(appPort, '/fallback/second')
  211 |
  212 |     await check(async () => {

  at it (integration/preview-fallback/test/index.test.ts:209:3)
  at runTests (integration/preview-fallback/test/index.test.ts:277:7)
  at integration/preview-fallback/test/index.test.ts:268:58
  at Object.describe (integration/preview-fallback/test/index.test.ts:267:1)

pnpm test-dev-turbo test/development/app-dir/browser-log-forwarding/fixtures/error-level/error-level.test.ts (turbopack) (job)

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

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

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:43329/docs/hmr/anonymous-page-function", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-full-reload-hmr-test.util.ts:17:21)

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

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:43329/docs/hmr/runtime-error", waiting until "load"

  369 |     await opts?.beforePageLoad?.(page)
  370 |
> 371 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  372 |   }
  373 |
  374 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:371:16)
  at webdriver (lib/next-webdriver.ts:160:3)
  at Object.<anonymous> (development/basic/hmr/run-full-reload-hmr-test.util.ts:58:21)

pnpm test-dev-turbo test/development/app-dir/browser-log-forwarding/fixtures/warn-level/warn-level.test.ts (turbopack) (job)

  • app-dir watch-config-file > should output config file change and restart server for app router (DD)
  • app-dir watch-config-file > should show accurate Ready in duration after restart (DD)
Expand output

● app-dir watch-config-file › should output config file change and restart server for app router

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

   8 |   })
   9 |
> 10 |   it('should output config file change and restart server for app router', async () => {
     |   ^
  11 |     await check(async () => next.cliOutput, /ready/i)
  12 |
  13 |     await check(async () => {

  at it (development/app-dir/watch-config-file/index.test.ts:10:3)
  at Object.describe (development/app-dir/watch-config-file/index.test.ts:5:1)

● app-dir watch-config-file › should show accurate Ready in duration after restart

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

  36 |   })
  37 |
> 38 |   it('should show accurate Ready in duration after restart', async () => {
     |   ^
  39 |     // No shared parser for "Ready in", handle all units
  40 |     const toMs = (m: RegExpMatchArray) => {
  41 |       const v = parseFloat(m[1])

  at it (development/app-dir/watch-config-file/index.test.ts:38:3)
  at Object.describe (development/app-dir/watch-config-file/index.test.ts:5:1)

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

  • Invalid hrefs > development mode > should not have a race condition with a click handler (DD)
  • Invalid hrefs > development mode > should not show error for function component with forwardRef (DD)
  • Invalid hrefs > development mode > should not show error for class component as child of next/link (DD)
  • Invalid hrefs > development mode > should handle child ref with React.createRef (DD)
  • Invalid hrefs > development mode > should handle child ref that is a function (DD)
  • Invalid hrefs > development mode > should handle child ref that is a function that returns a cleanup function (DD)
Expand output

● Invalid hrefs › development mode › should not have a race condition with a click handler

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

  57 | function runCommonTests() {
  58 |   // See https://github.com/vercel/next.js/issues/18437
> 59 |   it('should not have a race condition with a click handler', async () => {
     |   ^
  60 |     const browser = await webdriver(appPort, '/click-away-race-condition')
  61 |     await browser.elementByCss('#click-me').click()
  62 |     await browser.waitForElementByCss('#the-menu')

  at it (integration/link-ref-pages/test/index.test.ts:59:3)
  at runCommonTests (integration/link-ref-pages/test/index.test.ts:76:7)
  at integration/link-ref-pages/test/index.test.ts:67:58
  at Object.describe (integration/link-ref-pages/test/index.test.ts:66:1)

● Invalid hrefs › development mode › should not show error for function component with forwardRef

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

  76 |       runCommonTests()
  77 |
> 78 |       it('should not show error for function component with forwardRef', async () => {
     |       ^
  79 |         await noError('/function')
  80 |       })
  81 |

  at it (integration/link-ref-pages/test/index.test.ts:78:7)
  at integration/link-ref-pages/test/index.test.ts:67:58
  at Object.describe (integration/link-ref-pages/test/index.test.ts:66:1)

● Invalid hrefs › development mode › should not show error for class component as child of next/link

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

  80 |       })
  81 |
> 82 |       it('should not show error for class component as child of next/link', async () => {
     |       ^
  83 |         await noError('/class')
  84 |       })
  85 |

  at it (integration/link-ref-pages/test/index.test.ts:82:7)
  at integration/link-ref-pages/test/index.test.ts:67:58
  at Object.describe (integration/link-ref-pages/test/index.test.ts:66:1)

● Invalid hrefs › development mode › should handle child ref with React.createRef

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

  84 |       })
  85 |
> 86 |       it('should handle child ref with React.createRef', async () => {
     |       ^
  87 |         await noError('/child-ref')
  88 |       })
  89 |

  at it (integration/link-ref-pages/test/index.test.ts:86:7)
  at integration/link-ref-pages/test/index.test.ts:67:58
  at Object.describe (integration/link-ref-pages/test/index.test.ts:66:1)

● Invalid hrefs › development mode › should handle child ref that is a function

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

  88 |       })
  89 |
> 90 |       it('should handle child ref that is a function', async () => {
     |       ^
  91 |         await noError('/child-ref-func')
  92 |       })
  93 |

  at it (integration/link-ref-pages/test/index.test.ts:90:7)
  at integration/link-ref-pages/test/index.test.ts:67:58
  at Object.describe (integration/link-ref-pages/test/index.test.ts:66:1)

● Invalid hrefs › development mode › should handle child ref that is a function that returns a cleanup function

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

  92 |       })
  93 |
> 94 |       it('should handle child ref that is a function that returns a cleanup function', async () => {
     |       ^
  95 |         await noError('/child-ref-func-cleanup')
  96 |       })
  97 |     }

  at it (integration/link-ref-pages/test/index.test.ts:94:7)
  at integration/link-ref-pages/test/index.test.ts:67:58
  at Object.describe (integration/link-ref-pages/test/index.test.ts:66:1)

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

  • 404 handling > custom _error > next dev > should normalize repeated slashes in redirects correctly (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with query (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with hash (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with encoded (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with encoded and query (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with encoded and hash (DD)
  • 404 handling > custom _error > next dev > should handle backslashes correctly (DD)
  • 404 handling > custom _error > next dev > should handle mixed backslashes/forward slashes correctly (DD)
  • 404 handling > custom _error > next dev > should handle slashes in next/link correctly (DD)
  • 404 handling > custom _error > next dev > should handle slashes in router push correctly (DD)
  • 404 handling > custom _error > next dev > should have no error from encoded slashes in router push (DD)
  • 404 handling > pages/404 > next dev > should normalize repeated slashes in redirects correctly (DD)
  • 404 handling > pages/404 > next dev > should handle double slashes correctly (DD)
  • 404 handling > pages/404 > next dev > should handle double slashes correctly with query (DD)
  • 404 handling > pages/404 > next dev > should handle double slashes correctly with hash (DD)
  • 404 handling > pages/404 > next dev > should handle double slashes correctly with encoded (DD)
  • 404 handling > pages/404 > next dev > should handle double slashes correctly with encoded and query (DD)
  • 404 handling > pages/404 > next dev > should handle double slashes correctly with encoded and hash (DD)
  • 404 handling > pages/404 > next dev > should handle backslashes correctly (DD)
  • 404 handling > pages/404 > next dev > should handle mixed backslashes/forward slashes correctly (DD)
  • 404 handling > pages/404 > next dev > should handle slashes in next/link correctly (DD)
  • 404 handling > pages/404 > next dev > should handle slashes in router push correctly (DD)
  • 404 handling > pages/404 > next dev > should have no error from encoded slashes in router push (DD)
Expand output

● 404 handling › custom _error › next dev › should normalize repeated slashes in redirects correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle double slashes correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle double slashes correctly with query

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle double slashes correctly with hash

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded and query

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded and hash

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle backslashes correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle mixed backslashes/forward slashes correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle slashes in next/link correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should handle slashes in router push correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › custom _error › next dev › should have no error from encoded slashes in router push

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:466:5)
  at describe (integration/repeated-slashes/test/index.test.ts:465:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should normalize repeated slashes in redirects correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle double slashes correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle double slashes correctly with query

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle double slashes correctly with hash

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle double slashes correctly with encoded

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle double slashes correctly with encoded and query

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle double slashes correctly with encoded and hash

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle backslashes correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle mixed backslashes/forward slashes correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle slashes in next/link correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should handle slashes in router push correctly

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

● 404 handling › pages/404 › next dev › should have no error from encoded slashes in router push

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

  414 |   const devStartAndExport = (isPages404) => {
  415 |     describe('next dev', () => {
> 416 |       beforeAll(async () => {
      |       ^
  417 |         appPort = await findPort()
  418 |         app = await launchApp(appDir, appPort)
  419 |

  at beforeAll (integration/repeated-slashes/test/index.test.ts:416:7)
  at describe (integration/repeated-slashes/test/index.test.ts:415:5)
  at devStartAndExport (integration/repeated-slashes/test/index.test.ts:492:5)
  at describe (integration/repeated-slashes/test/index.test.ts:469:3)
  at Object.describe (integration/repeated-slashes/test/index.test.ts:413:1)

pnpm test test/integration/filesystempublicroutes/test/index.test.ts (turbopack) (job)

  • Error no pageProps > development mode > should load auto-export page correctly (DD)
  • Error no pageProps > development mode > should load getStaticProps page correctly (DD)
  • Error no pageProps > development mode > should load getServerSideProps page correctly (DD)
  • Error no pageProps > development mode > should load 404 page correctly (DD)
  • Error no pageProps > development mode > should navigate between pages correctly (DD)
Expand output

● Error no pageProps › development mode › should load auto-export page correctly

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

  16 |
  17 | const runTests = () => {
> 18 |   it('should load auto-export page correctly', async () => {
     |   ^
  19 |     const browser = await webdriver(appPort, '/')
  20 |     expect(await browser.elementByCss('#index').text()).toBe('index')
  21 |     expect(await browser.eval('window.uncaughtErrors')).toEqual([])

  at it (integration/no-page-props/test/index.test.ts:18:3)
  at runTests (integration/no-page-props/test/index.test.ts:92:7)
  at integration/no-page-props/test/index.test.ts:83:58
  at Object.describe (integration/no-page-props/test/index.test.ts:82:1)

● Error no pageProps › development mode › should load getStaticProps page correctly

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

  22 |   })
  23 |
> 24 |   it('should load getStaticProps page correctly', async () => {
     |   ^
  25 |     const browser = await webdriver(appPort, '/gsp')
  26 |     expect(await browser.elementByCss('#gsp').text()).toBe('getStaticProps')
  27 |     expect(await browser.eval('window.uncaughtErrors')).toEqual([])

  at it (integration/no-page-props/test/index.test.ts:24:3)
  at runTests (integration/no-page-props/test/index.test.ts:92:7)
  at integration/no-page-props/test/index.test.ts:83:58
  at Object.describe (integration/no-page-props/test/index.test.ts:82:1)

● Error no pageProps › development mode › should load getServerSideProps page correctly

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

  28 |   })
  29 |
> 30 |   it('should load getServerSideProps page correctly', async () => {
     |   ^
  31 |     const browser = await webdriver(appPort, '/gssp')
  32 |     expect(await browser.elementByCss('#gssp').text()).toBe(
  33 |       'getServerSideProps'

  at it (integration/no-page-props/test/index.test.ts:30:3)
  at runTests (integration/no-page-props/test/index.test.ts:92:7)
  at integration/no-page-props/test/index.test.ts:83:58
  at Object.describe (integration/no-page-props/test/index.test.ts:82:1)

● Error no pageProps › development mode › should load 404 page correctly

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

  36 |   })
  37 |
> 38 |   it('should load 404 page correctly', async () => {
     |   ^
  39 |     const browser = await webdriver(appPort, '/non-existent')
  40 |     expect(await browser.elementByCss('h2').text()).toBe(
  41 |       'Application error: a client-side exception has occurred (see the browser console for more information).'

  at it (integration/no-page-props/test/index.test.ts:38:3)
  at runTests (integration/no-page-props/test/index.test.ts:92:7)
  at integration/no-page-props/test/index.test.ts:83:58
  at Object.describe (integration/no-page-props/test/index.test.ts:82:1)

● Error no pageProps › development mode › should navigate between pages correctly

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

  44 |   })
  45 |
> 46 |   it('should navigate between pages correctly', async () => {
     |   ^
  47 |     const browser = await webdriver(appPort, '/')
  48 |
  49 |     await browser.eval('window.beforeNav = "hi"')

  at it (integration/no-page-props/test/index.test.ts:46:3)
  at runTests (integration/no-page-props/test/index.test.ts:92:7)
  at integration/no-page-props/test/index.test.ts:83:58
  at Object.describe (integration/no-page-props/test/index.test.ts:82:1)

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Mar 24, 2026

Merging this PR will degrade performance by 3.68%

❌ 3 regressed benchmarks
✅ 14 untouched benchmarks
⏩ 3 skipped benchmarks1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation react-dom-client.development.js[full] 395 ms 408.4 ms -3.29%
Simulation packages-bundle.js[full] 959.6 ms 992.4 ms -3.31%
Simulation app-page-turbo.runtime.prod.js[full] 624 ms 647.9 ms -3.68%

Comparing bgw/rm-apply-effects (55e9202) with canary (e2af4d8)

Open in CodSpeed

Footnotes

  1. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@bgw bgw force-pushed the bgw/effect-trace-raw-vcs branch from d6f9660 to e1ace25 Compare March 24, 2026 16:40
@bgw bgw force-pushed the bgw/rm-apply-effects branch from 574b89e to 0c110c6 Compare March 24, 2026 16:40
@nextjs-bot
Copy link
Copy Markdown
Collaborator

nextjs-bot commented Mar 24, 2026

Stats from current PR

✅ No significant changes detected

📊 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) 456ms 455ms ▁▁▁▁▁
Cold (Ready in log) 440ms 438ms ▁▁▁▁▁
Cold (First Request) 1.139s 1.068s ▁▁▁▁▁
Warm (Listen) 456ms 456ms ▁▁▁▁▁
Warm (Ready in log) 444ms 442ms ▁▁▁▁▁
Warm (First Request) 341ms 347ms ▁▁▁▁▁
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 455ms 455ms █▁▁▁█
Cold (Ready in log) 435ms 435ms ▆▁▁▁▅
Cold (First Request) 1.856s 1.866s ▅▁▃▃▅
Warm (Listen) 456ms 456ms █▁▁▁█
Warm (Ready in log) 435ms 436ms ▆▁▁▁▅
Warm (First Request) 1.852s 1.876s ▅▁▂▂▆

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 3.738s 3.753s ▁▁▁▁▁
Cached Build 3.797s 3.718s ▁▁▁▁▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 14.238s 14.281s ▄▁▁▁▆
Cached Build 14.485s 14.492s ▅▁▁▁▆
node_modules Size 484 MB 484 MB █████
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles
Canary PR Change
0-d~0o3ehhgmw.js gzip 151 B N/A -
0~lwfcrlb4v_9.css gzip 115 B 115 B
00h0nz7r436~l.js gzip 13.3 kB N/A -
00ivb_iunbucu.js gzip 13 kB N/A -
01at~wdgj81ve.js gzip 48.9 kB N/A -
02ku7edzc_wf7.js gzip 450 B N/A -
03~yq9q893hmn.js gzip 39.4 kB 39.4 kB
04z94byop2jge.js gzip 155 B N/A -
05s5bqmu.v.s2.js gzip 70.8 kB N/A -
092lcb3fqrrf9.js gzip 8.52 kB N/A -
0aj~xs1l1g8tg.js gzip 8.53 kB N/A -
0dt88d2.q3puq.js gzip 156 B N/A -
0g5sqjyu0dlae.js gzip 65.7 kB N/A -
0h35gmp9u328z.js gzip 8.54 kB N/A -
0h6fkavebp.iz.js gzip 8.47 kB N/A -
0ino_yf1k3h6k.js gzip 10.4 kB N/A -
0l9ef8qyt48q4.js gzip 161 B N/A -
0lqjp7063d~ts.js gzip 156 B N/A -
0mc16gv2x1bet.js gzip 13.7 kB N/A -
0mkdvwb8sm1cs.js gzip 157 B N/A -
0mncpry_rfn-y.js gzip 7.61 kB N/A -
0moy~uao4dl.m.js gzip 9.19 kB N/A -
0n3yn2kt3mgkf.js gzip 162 B N/A -
0oqyjf21.xfvl.js gzip 169 B N/A -
0q50rtpusjy90.js gzip 2.28 kB N/A -
0smgy2grrrlka.js gzip 8.58 kB N/A -
0svcqoqon1z.7.js gzip 154 B N/A -
0t1dzhdfh0txh.js gzip 215 B 215 B
0vt7pofxnk8in.js gzip 10.1 kB N/A -
0z6jc9z0349ap.js gzip 155 B N/A -
0zid7o0-vupvp.js gzip 225 B N/A -
11mdhajjc6875.js gzip 157 B N/A -
11yo3xfd6b147.js gzip 12.9 kB N/A -
12_8n261pygfq.js gzip 156 B N/A -
13.84hqxl_1p7.js gzip 9.76 kB N/A -
138ltu~qb2ydz.js gzip 158 B N/A -
1554wr-t7p6z-.js gzip 8.55 kB N/A -
15tjst79~qy3_.js gzip 1.46 kB N/A -
15z_v00ne4ud0.js gzip 8.47 kB N/A -
17d_m3p4j9w6r.js gzip 5.62 kB N/A -
17yu~3yiu7d2m.js gzip 8.52 kB N/A -
turbopack-0_..jw30.js gzip 4.15 kB N/A -
turbopack-01..hk.z.js gzip 4.13 kB N/A -
turbopack-01..3tdd.js gzip 4.17 kB N/A -
turbopack-02..cl~l.js gzip 4.15 kB N/A -
turbopack-09..wmtl.js gzip 4.16 kB N/A -
turbopack-0a..hs-0.js gzip 4.16 kB N/A -
turbopack-0f..4bnp.js gzip 4.16 kB N/A -
turbopack-0g..7vlj.js gzip 4.16 kB N/A -
turbopack-0p..6se..js gzip 4.16 kB N/A -
turbopack-0r...~ib.js gzip 4.16 kB N/A -
turbopack-0s..dnao.js gzip 4.16 kB N/A -
turbopack-0x..ivz7.js gzip 4.16 kB N/A -
turbopack-15..u41w.js gzip 4.15 kB N/A -
turbopack-16..~kqj.js gzip 4.15 kB N/A -
0.ig-nh6ddby4.js gzip N/A 153 B -
02ff96.~as-xu.js gzip N/A 157 B -
03t__~.5lvgeu.js gzip N/A 5.62 kB -
04d6ll75jqx3r.js gzip N/A 9.19 kB -
04wavr--oh-1-.js gzip N/A 155 B -
0583exyh-yhc7.js gzip N/A 9.76 kB -
072lv63r8dcz~.js gzip N/A 8.58 kB -
075t9dxgbf0m8.js gzip N/A 13.7 kB -
0873k5691ee0i.js gzip N/A 70.8 kB -
09123-xgm97yo.js gzip N/A 160 B -
0a3drqm~aryl6.js gzip N/A 153 B -
0ar1~bwpezfgw.js gzip N/A 13.3 kB -
0c99mq1ez2bke.js gzip N/A 450 B -
0cq-cmde_ws6u.js gzip N/A 8.47 kB -
0fwf102w10o9~.js gzip N/A 8.52 kB -
0gtmn.q_j1v5r.js gzip N/A 10.4 kB -
0h5~v-tahitcf.js gzip N/A 10.1 kB -
0i85sm0i~_x1y.js gzip N/A 48.8 kB -
0ka9wyuwc0va-.js gzip N/A 154 B -
0m8yz2-y.owhu.js gzip N/A 7.6 kB -
0nclq9z6yzzm5.js gzip N/A 1.46 kB -
0nga-9kug7bgp.js gzip N/A 154 B -
0nzumcogektg7.js gzip N/A 8.55 kB -
0p5sjual.nuis.js gzip N/A 13 kB -
0pet9ixg7-64s.js gzip N/A 149 B -
0pzv1cr_lc8sc.js gzip N/A 154 B -
0s.c-cn5eebrx.js gzip N/A 8.47 kB -
0t4u4gi13w~ge.js gzip N/A 65.7 kB -
0tna7lg6q4zne.js gzip N/A 12.9 kB -
0votdfxr5fb5u.js gzip N/A 2.28 kB -
0ykl9bs_qj.5..js gzip N/A 8.52 kB -
0zfen0tnxp4gh.js gzip N/A 8.55 kB -
10wkq1h9jzkg..js gzip N/A 225 B -
12s.i1.5kfw6p.js gzip N/A 168 B -
13yp0tf_.vo3_.js gzip N/A 152 B -
143nm3aj63v.8.js gzip N/A 152 B -
149ndfh8zfcaz.js gzip N/A 8.53 kB -
17vn26efzi_wl.js gzip N/A 154 B -
turbopack-01..1zy5.js gzip N/A 4.15 kB -
turbopack-04..ylsp.js gzip N/A 4.15 kB -
turbopack-05..2tc..js gzip N/A 4.16 kB -
turbopack-0g..j7lx.js gzip N/A 4.15 kB -
turbopack-0g..sg37.js gzip N/A 4.16 kB -
turbopack-0h..1v_h.js gzip N/A 4.16 kB -
turbopack-0i..qamy.js gzip N/A 4.17 kB -
turbopack-0o..hr_c.js gzip N/A 4.16 kB -
turbopack-0t..0nu2.js gzip N/A 4.16 kB -
turbopack-0v..9.j3.js gzip N/A 4.16 kB -
turbopack-0v..v9_z.js gzip N/A 4.16 kB -
turbopack-0x..yhs..js gzip N/A 4.16 kB -
turbopack-0y..l8a..js gzip N/A 4.13 kB -
turbopack-13..jmn~.js gzip N/A 4.16 kB -
Total 463 kB 463 kB ✅ -43 B

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 713 B 711 B
Total 713 B 711 B ✅ -2 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 431 B 430 B
Total 431 B 430 B ✅ -1 B

📦 Webpack

Client

Main Bundles
Canary PR Change
5528-HASH.js gzip 5.54 kB N/A -
6280-HASH.js gzip 60.6 kB N/A -
6335.HASH.js gzip 169 B N/A -
912-HASH.js gzip 4.59 kB N/A -
e8aec2e4-HASH.js gzip 62.7 kB N/A -
framework-HASH.js gzip 59.7 kB 59.7 kB
main-app-HASH.js gzip 255 B 254 B
main-HASH.js gzip 39.3 kB 39.2 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
262-HASH.js gzip N/A 4.59 kB -
2889.HASH.js gzip N/A 169 B -
5602-HASH.js gzip N/A 5.55 kB -
6948ada0-HASH.js gzip N/A 62.7 kB -
9544-HASH.js gzip N/A 61.3 kB -
Total 235 kB 235 kB ⚠️ +696 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.51 kB 2.51 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.98 kB 7.98 kB ✅ -1 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 125 kB 125 kB
page.js gzip 270 kB 270 kB
Total 395 kB 395 kB ⚠️ +179 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 617 B 613 B
middleware-r..fest.js gzip 156 B 155 B
middleware.js gzip 44 kB 44 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 45.6 kB 45.6 kB ✅ -36 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 4.34 MB 4.33 MB 🟢 4.75 kB (0%)
index.pack gzip 109 kB 109 kB
index.pack.old gzip 110 kB 110 kB
Total 4.55 MB 4.55 MB ✅ -4.8 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 334 kB 334 kB
app-page-exp..prod.js gzip 182 kB 182 kB
app-page-tur...dev.js gzip 334 kB 334 kB
app-page-tur..prod.js gzip 181 kB 181 kB
app-page-tur...dev.js gzip 330 kB 330 kB
app-page-tur..prod.js gzip 179 kB 179 kB
app-page.run...dev.js gzip 331 kB 331 kB
app-page.run..prod.js gzip 180 kB 180 kB
app-route-ex...dev.js gzip 76.2 kB 76.2 kB
app-route-ex..prod.js gzip 51.8 kB 51.8 kB
app-route-tu...dev.js gzip 76.2 kB 76.2 kB
app-route-tu..prod.js gzip 51.9 kB 51.9 kB
app-route-tu...dev.js gzip 75.8 kB 75.8 kB
app-route-tu..prod.js gzip 51.6 kB 51.6 kB
app-route.ru...dev.js gzip 75.8 kB 75.8 kB
app-route.ru..prod.js gzip 51.6 kB 51.6 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.4 kB 43.4 kB
pages-api-tu..prod.js gzip 33 kB 33 kB
pages-api.ru...dev.js gzip 43.4 kB 43.4 kB
pages-api.ru..prod.js gzip 33 kB 33 kB
pages-turbo....dev.js gzip 52.8 kB 52.8 kB
pages-turbo...prod.js gzip 38.6 kB 38.6 kB
pages.runtim...dev.js gzip 52.8 kB 52.8 kB
pages.runtim..prod.js gzip 38.6 kB 38.6 kB
server.runti..prod.js gzip 62.5 kB 62.5 kB
Total 2.96 MB 2.96 MB ⚠️ +2 B
📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/0d3274cd9a1cfa092e734abd17746482eb946e83/next

@bgw bgw force-pushed the bgw/rm-apply-effects branch from 0c110c6 to db950fd Compare March 24, 2026 17:37
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

check that running with UPDATE=1 still works, by manually invalidating an Issue golden

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

  • The execution test output doesn't appear to be committed, and is always written? Running cargo test -p turbopack-tests execution works.
  • UPDATE=1 cargo test -p turbopack-tests --test snapshot works

@bgw bgw force-pushed the bgw/effect-trace-raw-vcs branch 2 times, most recently from 7ed4ec1 to 457fced Compare March 24, 2026 21:35
@bgw bgw force-pushed the bgw/rm-apply-effects branch from 496137a to 0d3274c Compare March 24, 2026 21:36
@bgw bgw changed the base branch from bgw/effect-trace-raw-vcs to graphite-base/91858 March 24, 2026 22:15
@bgw bgw force-pushed the graphite-base/91858 branch from 457fced to e2af4d8 Compare March 24, 2026 22:16
@bgw bgw force-pushed the bgw/rm-apply-effects branch from 0d3274c to d73c05c Compare March 24, 2026 22:16
@graphite-app graphite-app bot changed the base branch from graphite-base/91858 to canary March 24, 2026 22:17
@bgw bgw force-pushed the bgw/rm-apply-effects branch from d73c05c to e24da4e Compare March 24, 2026 22:17
@bgw bgw force-pushed the bgw/rm-apply-effects branch from e24da4e to 55e9202 Compare March 24, 2026 22:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants