Skip to content

tiny debugging hacks#92357

Draft
lukesandberg wants to merge 4 commits intocanaryfrom
streaming_reads_and_caches
Draft

tiny debugging hacks#92357
lukesandberg wants to merge 4 commits intocanaryfrom
streaming_reads_and_caches

Conversation

@lukesandberg
Copy link
Copy Markdown
Contributor

No description provided.

@nextjs-bot nextjs-bot added created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js. type: next labels Apr 4, 2026
Copy link
Copy Markdown
Contributor Author

@nextjs-bot
Copy link
Copy Markdown
Collaborator

nextjs-bot commented Apr 4, 2026

Failing test suites

Commit: ec9f7f3 | About building and testing Next.js

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

  • Custom routes > should load custom routes when only one type is used > development mode > should work with just headers (DD)
  • Custom routes > should load custom routes when only one type is used > development mode > should work with just rewrites (DD)
  • Custom routes > should load custom routes when only one type is used > development mode > should work with just redirects (DD)
  • Custom routes > should load custom routes when only one type is used > production mode > should work with just headers (DD)
  • Custom routes > should load custom routes when only one type is used > production mode > should work with just rewrites (DD)
  • Custom routes > should load custom routes when only one type is used > production mode > should work with just redirects (DD)
Expand output

● Custom routes › should load custom routes when only one type is used › development mode › should work with just headers

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."

  2690 |       }
  2691 |
> 2692 |       it('should work with just headers', async () => {
       |       ^
  2693 |         nextConfigContent = await fs.readFile(nextConfigPath, 'utf8')
  2694 |         await fs.writeFile(
  2695 |           nextConfigPath,

  at it (integration/custom-routes/test/index.test.ts:2692:7)
  at runSoloTests (integration/custom-routes/test/index.test.ts:2776:9)
  at integration/custom-routes/test/index.test.ts:2773:60
  at describe (integration/custom-routes/test/index.test.ts:2678:3)
  at Object.describe (integration/custom-routes/test/index.test.ts:2557:1)

● Custom routes › should load custom routes when only one type is used › development mode › should work with just rewrites

FetchError: request to http://localhost:43767/add-header failed, reason: socket hang up

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

● Custom routes › should load custom routes when only one type is used › development mode › should work with just redirects

FetchError: request to http://localhost:37507/add-header failed, reason: socket hang up

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

● Custom routes › should load custom routes when only one type is used › production mode › should work with just headers

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

Expected: "hello world"
Received: null

  2708 |         await killApp(app)
  2709 |
> 2710 |         expect(res.headers.get('x-custom-header')).toBe('hello world')
       |                                                    ^
  2711 |         expect(res.headers.get('x-another-header')).toBe('hello again')
  2712 |
  2713 |         expect(res2.status).toBe(404)

  at Object.toBe (integration/custom-routes/test/index.test.ts:2710:52)

● Custom routes › should load custom routes when only one type is used › production mode › should work with just rewrites

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

Expected: 200
Received: 404

  2738 |         expect(res2.status).toBe(404)
  2739 |
> 2740 |         expect(res3.status).toBe(200)
       |                             ^
  2741 |         expect(await res3.text()).toContain('hello world!')
  2742 |       })
  2743 |

  at Object.toBe (integration/custom-routes/test/index.test.ts:2740:29)

● Custom routes › should load custom routes when only one type is used › production mode › should work with just redirects

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

Expected: 301
Received: 404

  2764 |
  2765 |         const { pathname } = new URL(res2.headers.get('location'), res.url)
> 2766 |         expect(res2.status).toBe(301)
       |                             ^
  2767 |         expect(pathname).toBe('/docs/v2/advanced/now-for-github')
  2768 |
  2769 |         expect(res3.status).toBe(404)

  at Object.toBe (integration/custom-routes/test/index.test.ts:2766:29)

pnpm test-start-turbo test/e2e/app-dir/trace-build-file/trace-build-file.test.ts (turbopack) (job)

  • trace-build-file > should contain high-level build trace events (DD)
  • trace-build-file > should only contain allowlisted events (DD)
  • trace-build-file > should have next-build as root span with proper hierarchy (DD)
  • trace-build-file > should have consistent traceId across all events (DD)
  • trace-build-file > should work with basic page rendering (DD)
Expand output

● trace-build-file › should contain high-level build trace events

can not run export while server is running, use next.stop() first

  251 |   ) {
  252 |     if (this.childProcess) {
> 253 |       throw new Error(
      |             ^
  254 |         `can not run export while server is running, use next.stop() first`
  255 |       )
  256 |     }

  at NextStartInstance.build (lib/next-modes/next-start.ts:253:13)
  at Object.build (e2e/app-dir/trace-build-file/trace-build-file.test.ts:32:18)

● trace-build-file › should only contain allowlisted events

can not run export while server is running, use next.stop() first

  251 |   ) {
  252 |     if (this.childProcess) {
> 253 |       throw new Error(
      |             ^
  254 |         `can not run export while server is running, use next.stop() first`
  255 |       )
  256 |     }

  at NextStartInstance.build (lib/next-modes/next-start.ts:253:13)
  at Object.build (e2e/app-dir/trace-build-file/trace-build-file.test.ts:58:18)

● trace-build-file › should have next-build as root span with proper hierarchy

can not run export while server is running, use next.stop() first

  251 |   ) {
  252 |     if (this.childProcess) {
> 253 |       throw new Error(
      |             ^
  254 |         `can not run export while server is running, use next.stop() first`
  255 |       )
  256 |     }

  at NextStartInstance.build (lib/next-modes/next-start.ts:253:13)
  at Object.build (e2e/app-dir/trace-build-file/trace-build-file.test.ts:109:18)

● trace-build-file › should have consistent traceId across all events

can not run export while server is running, use next.stop() first

  251 |   ) {
  252 |     if (this.childProcess) {
> 253 |       throw new Error(
      |             ^
  254 |         `can not run export while server is running, use next.stop() first`
  255 |       )
  256 |     }

  at NextStartInstance.build (lib/next-modes/next-start.ts:253:13)
  at Object.build (e2e/app-dir/trace-build-file/trace-build-file.test.ts:154:18)

● trace-build-file › should work with basic page rendering

next already started

  63 |   public async start(options: { skipBuild?: boolean } = {}) {
  64 |     if (this.childProcess) {
> 65 |       throw new Error('next already started')
     |             ^
  66 |     }
  67 |
  68 |     this._cliOutput = ''

  at NextStartInstance.start (lib/next-modes/next-start.ts:65:13)
  at Object.start (e2e/app-dir/trace-build-file/trace-build-file.test.ts:186:18)

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

  • config-output-export > should work with getStaticProps and without revalidate (DD)
  • config-output-export > should error with getServerSideProps without fallback (DD)
  • config-output-export > should error with getStaticPaths and fallback true (DD)
  • config-output-export > should error with getStaticPaths and fallback blocking (DD)
  • config-output-export > should work with getStaticPaths and fallback false (DD)
Expand output

● config-output-export › should work with getStaticProps and without revalidate

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."

  271 |   })
  272 |
> 273 |   it('should work with getStaticProps and without revalidate', async () => {
      |   ^
  274 |     const blog = join(appDir, 'pages/blog.js')
  275 |     let result: { stdout: string; stderr: string; port: number } | undefined
  276 |     let browser: any

  at it (integration/config-output-export/test/index.test.ts:273:3)
  at Object.describe (integration/config-output-export/test/index.test.ts:41:1)

● config-output-export › should error with getServerSideProps without 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."

  299 |   })
  300 |
> 301 |   it('should error with getServerSideProps without fallback', async () => {
      |   ^
  302 |     const blog = join(appDir, 'pages/blog.js')
  303 |     let result: { stdout: string; stderr: string; port: number } | undefined
  304 |     let browser: any

  at it (integration/config-output-export/test/index.test.ts:301:3)
  at Object.describe (integration/config-output-export/test/index.test.ts:41:1)

● config-output-export › should error with getStaticPaths and fallback true

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."

  333 |   })
  334 |
> 335 |   it('should error with getStaticPaths and fallback true', async () => {
      |   ^
  336 |     const posts = join(appDir, 'pages/posts')
  337 |     let result: { stdout: string; stderr: string; port: number } | undefined
  338 |     let browser: any

  at it (integration/config-output-export/test/index.test.ts:335:3)
  at Object.describe (integration/config-output-export/test/index.test.ts:41:1)

● config-output-export › should error with getStaticPaths and fallback blocking

EEXIST: file already exists, mkdir '/root/actions-runner/_work/next.js/next.js/test/integration/config-output-export/pages/posts'

  382 |     let browser: any
  383 |     try {
> 384 |       fs.mkdirSync(posts)
      |          ^
  385 |       fs.writeFileSync(
  386 |         join(posts, '[slug].js'),
  387 |         `export default function Post(props) {

  at Object.mkdirSync (integration/config-output-export/test/index.test.ts:384:10)

● config-output-export › should work with getStaticPaths and fallback false

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

Expected substring: "Hello from one"
Received string:    "404"

  453 |       browser = await webdriver(result.port, '/posts/one')
  454 |       const h1 = await browser.elementByCss('h1')
> 455 |       expect(await h1.text()).toContain('Hello from one')
      |                               ^
  456 |       await waitForNoRedbox(browser)
  457 |       expect(result.stderr).toBeEmpty()
  458 |     } finally {

  at Object.toContain (integration/config-output-export/test/index.test.ts:455:31)

pnpm test-dev-turbo test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts (turbopack) (job)

  • react-dom/server in React Server environment > explicit react-dom/server.edge usage in app code (DD)
  • react-dom/server in React Server environment > implicit react-dom/server.node usage in app code (DD)
  • react-dom/server in React Server environment > explicit react-dom/server.browser usage in library code (DD)
Expand output

● react-dom/server in React Server environment › explicit react-dom/server.edge usage in app code

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:39053/exports/app-code/react-dom-server-edge-explicit", 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/ssr-in-rsc/ssr-in-rsc.test.ts:107:21)

● react-dom/server in React Server environment › implicit react-dom/server.node usage in app code

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:45237/exports/app-code/react-dom-server-node-implicit", 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/ssr-in-rsc/ssr-in-rsc.test.ts:318:21)

● react-dom/server in React Server environment › explicit react-dom/server.browser usage in library code

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "http://localhost:40019/exports/library-code/react-dom-server-browser-explicit", 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/ssr-in-rsc/ssr-in-rsc.test.ts:400:21)

pnpm test-dev-turbo test/e2e/app-dir/graceful-shutdown-next-after/custom-server/index.test.ts (turbopack) (job)

  • after during server shutdown - custom server > waits for after callbacks when the server receives SIGTERM (DD)
Expand output

● after during server shutdown - custom server › waits for after callbacks when the server receives SIGTERM

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."

  30 |   // unlike the above test for `next dev`, NextCustomServer has no logic that'd cause it to skip cleanups in dev mode,
  31 |   // so this is the same in both modes
> 32 |   it.each(['SIGINT', 'SIGTERM'] as const)(
     |                                ^
  33 |     'waits for after callbacks when the server receives %s',
  34 |     async (signal) => {
  35 |       await next.render('/')

  at ../node_modules/.pnpm/jest-each@29.7.0/node_modules/jest-each/build/bind.js:47:15
      at Array.forEach (<anonymous>)
  at e2e/app-dir/graceful-shutdown-next-after/custom-server/index.test.ts:32:32
  at Object.describe (e2e/app-dir/graceful-shutdown-next-after/custom-server/index.test.ts:4:1)

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Apr 4, 2026

Merging this PR will not alter performance

✅ 17 untouched benchmarks
⏩ 3 skipped benchmarks1


Comparing streaming_reads_and_caches (ec9f7f3) with canary (f65b10a)

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.

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. type: next

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants