Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Turbopack build feedback #77721

Unanswered
timneutkens asked this question in Show and tell
Apr 2, 2025 · 70 comments · 97 replies
Discussion options

Thread for posting feedback about next build --turbopack.

You must be logged in to vote

Replies: 70 comments 97 replies

Comment options

when creating a standalone build and starting with just node server.js we are greeted by the message to start with --turbo but it mentions next start instead so user is unsure where to place that flag

You must be logged in to vote
1 reply
Comment options

timneutkens Apr 9, 2025
Maintainer Author

This is no longer the case when using the latest canary release (that is going out as 15.3 soon).

Comment options

why does turbopack --build report different output sizes?

with 15.3.0-canary.33 i am trying next build --turbopack in a fresh CNA project initialised with pnpm create next-app@canary --empty.

running pnpm build --turbopack i see:

Route (app) Size First Load JS 
┌ しろまる / 0 B 111 kB
└ しろまる /_not-found 0 B 111 kB
+ First Load JS shared by all 112 kB
 └ chunks/node_modules__pnpm_3614e913._.js 77 kB
 ├ chunks/node_modules__pnpm_ba52a8a1._.js 23.3 kB
 └ other shared chunks (total) 11.7 kB

however, running pnpm build (without --turbopack) i see:

Route (app) Size First Load JS 
┌ しろまる / 136 B 101 kB
└ しろまる /_not-found 975 B 102 kB
+ First Load JS shared by all 101 kB
 ├ chunks/888-3456149ea39a8811.js 46.3 kB
 ├ chunks/d6cf7d57-847bdd2c8760c913.js 53.1 kB
 └ other shared chunks (total) 1.89 kB
You must be logged in to vote
4 replies
Comment options

timneutkens Apr 9, 2025
Maintainer Author

Are you asking about the larger bundle size or the 0 being reported for initial load size? The larger bundle size is currently expected because some optimizations still have to be implemented.

Comment options

The larger bundle size is currently expected because some optimizations still have to be implemented.

thanks that explains it.

Comment options

btw will turbopack have a replacement for webpack's bundle-analyzer?

Comment options

bgw Aug 18, 2025
Maintainer

@stefanprobst, we need a more polished long-term solution, but for now you can run next build with a TURBOPACK_STATS=1 environment variable to generate a .next/server/webpack-stats.json that's compatible with https://statoscope.tech/ and the webpack bundle analyzer.

See #81318 for details.

Comment options

turbopack build does not correctly resolve fonts from next/font - #77861

You must be logged in to vote
1 reply
Comment options

timneutkens Apr 9, 2025
Maintainer Author

Did some digging into this and it seems to only happen with .variable, we'll dig into it.

Comment options

next build --turbo with nextjs 15.3.0 generates chunks with invalid filenames on Windows.
Turbo want to use this chunk name: .next/server/chunks/ssr/[externals]_node:fs_cbd691c7._.js
But that name is invalid because ":" is not a valid character for a filename in Windows.
The build fails when next tries to copy the file for the standalone build from .next/server to .next/standalone because no such file exists. The filename seems to get silently truncated as there exists a ".next/server/chunks/ssr/[externals]_node" file.

You must be logged in to vote
3 replies
Comment options

timneutkens Apr 9, 2025
Maintainer Author

This is good feedback, thanks! We'll get it fixed.

Comment options

@timneutkens any advance on this topic ? I encounter the same error with a chunk related to node:inspector .next\server\chunks\[externals]_node:inspector_7a4283c6._.js

Comment options

I still get this warning in nextjs 16.0.0 but the build seems to succeed?

 ⚠ Failed to copy traced files for C:\<redacted>\webapp\.next\server\app\_not-found\page.js Error: EINVAL: invalid argument, copyfile 'C:\<redacted>\webapp\.next\server\chunks\ssr\[externals]_node:inspector_7a4283c6._.js' -> 'C:\<redacted>\webapp\.next\standalone\.next\server\chunks\ssr\[externals]_node:inspector_7a4283c6._.js'
 at ignore-listed frames {
 errno: -4071,
 code: 'EINVAL',
 syscall: 'copyfile',
 path: 'C:\\<redacted>\\webapp\\.next\\server\\chunks\\ssr\\[externals]_node:inspector_7a4283c6._.js',
 dest: 'C:\\<redacted>\\webapp\\.next\\standalone\\.next\\server\\chunks\\ssr\\[externals]_node:inspector_7a4283c6._.js'
}
Comment options

$ NODE_OPTIONS='--max-old-space-size=14000' next build --turbopack
 さんかく Next.js 15.3.0 (Turbopack)
 - Environments: .env
 Creating an optimized production build ...
 ✓ Compiled successfully in 14.2s
 Skipping linting
 ✓ Checking validity of types
 Collecting page data ..TypeError: The "paths[0]" argument must be of type string. Received type number (436802)
 at n.exports (.next/server/chunks/_bf01bf3c._.js:72:461141)
 at n.exports (.next/server/chunks/_bf01bf3c._.js:72:461526)
 at 436802 (.next/server/chunks/_bf01bf3c._.js:72:461883)
 at instantiateModule (.next/server/chunks/[turbopack]_runtime.js:594:23)
 at getOrInstantiateModuleFromParent (.next/server/chunks/[turbopack]_runtime.js:653:12)
 at commonJsRequire (.next/server/chunks/[turbopack]_runtime.js:147:20)
 at 36584 (.next/server/chunks/_bf01bf3c._.js:72:514218)
 at instantiateModule (.next/server/chunks/[turbopack]_runtime.js:594:23)
 at getOrInstantiateModuleFromParent (.next/server/chunks/[turbopack]_runtime.js:653:12) {
 code: 'ERR_INVALID_ARG_TYPE'
}
 ⚠ Support for Turbopack builds is experimental. We don't recommend deploying mission-critical applications to production.
- Turbopack currently always builds production sourcemaps for the browser. This will include project sourcecode if deployed to production.
- It is expected that your bundle size might be different from `next build` with webpack. This will be improved as we work towards stability.
- This build is without disk caching; subsequent builds will become faster when disk caching becomes available.
- When comparing output to webpack builds, make sure to first clear the Next.js cache by deleting the `.next` directory.
Provide feedback for Turbopack builds at https://github.com/vercel/next.js/discussions/77721
> Build error occurred
[Error: Failed to collect page data for /api/sso/acs] { type: 'Error' }
error: script "build" exited with code 1
import jackson from "@/server/services/jackson";
import { redirect } from "next/navigation";
export async function POST(req: Request) {
const { oauthController } = await jackson();
const formData = await req.formData();
const { redirect_url } = await oauthController.samlResponse({
 RelayState: formData.get("RelayState") as string,
 SAMLResponse: formData.get("SAMLResponse") as string,
});
redirect(redirect_url as string);
}
import { clientEnv } from "@/env/client";
import { createUrl } from "@/lib/utils";
import jackson, {
type IConnectionAPIController,
type IDirectorySyncController,
type IOAuthController,
type ISPSSOConfig,
type JacksonOption,
type OIDCAuthzResponsePayload,
} from "@boxyhq/saml-jackson";
import config from "../db/config";
export type { OIDCAuthzResponsePayload };
interface Global {
apiController?: IConnectionAPIController;
oauthController?: IOAuthController;
directorySync?: IDirectorySyncController;
spConfig?: ISPSSOConfig;
}
const g: Global = global as unknown as Global;
const externalUrl = createUrl.subdomain("admin-cms").path();
const opts: JacksonOption = {
externalUrl: externalUrl,
samlAudience: clientEnv.NEXT_PUBLIC_APP_NAME,
samlPath: "/api/sso/acs",
oidcPath: "/api/sso/callback",
db: {
 engine: "sql",
 type: "mysql",
 url: config.primary,
},
openid: {},
noAnalytics: true,
};
let apiController: IConnectionAPIController;
let oauthController: IOAuthController;
let directorySync: IDirectorySyncController;
let spConfig: ISPSSOConfig;
export default async function init() {
if (
 !g.apiController ||
 !g.oauthController ||
 !g.directorySync ||
 !g.spConfig
) {
 const ret = await jackson(opts);
 apiController = ret.apiController;
 oauthController = ret.oauthController;
 directorySync = ret.directorySyncController;
 spConfig = ret.spConfig;
 g.apiController = apiController;
 g.oauthController = oauthController;
 g.directorySync = directorySync;
 g.spConfig = spConfig;
} else {
 apiController = g.apiController;
 oauthController = g.oauthController;
 directorySync = g.directorySync;
 spConfig = g.spConfig;
}
return {
 apiController,
 oauthController,
 directorySync,
 spConfig,
};
}
You must be logged in to vote
3 replies
Comment options

I'm having the same issue. Next 15.3.1

Comment options

Any update on this? I'm also having the same issue on Next 15.3.2.

Comment options

I tested in the Next.js 15.4.0-canary.63 version, and it's now working properly.

next build --turbopack builds in 36 seconds.

image

next build uncached builds in 1 minute 23 seconds.

image
Comment options

We are from LobeHub Team and building LobeChat with nextjs.

I have tested the building with turbopack now and It's amazing fast!

image

And Here is a compare of webpack and turbopack:

Before(Webpack) After(Turbopack)
image image
797s (13m17s) 314s (5m14s)

You can see turbopack reduce 60% building time!

But there still an issue with integate with serwist: serwist/serwist#54 . Can wait to move to turbopack after this integration!

You must be logged in to vote
1 reply
Comment options

Comment options

Turbo build production fails with Prisma (tried on both 6.5.0 and 6.6.0 using the prisma-client-js generator):

@e/frontend:build: Provide feedback for Turbopack builds at https://github.com/vercel/next.js/discussions/77721
@e/frontend:build: TypeError: The "path" argument must be of type string. Received type number (973897)
@e/frontend:build: at 973897 (.next/server/chunks/[root-of-the-server]__952c100a._.js:86:5748)
@e/frontend:build: at instantiateModule (.next/server/chunks/[turbopack]_runtime.js:594:23)
@e/frontend:build: at getOrInstantiateModuleFromParent (.next/server/chunks/[turbopack]_runtime.js:653:12)
@e/frontend:build: at commonJsRequire (.next/server/chunks/[turbopack]_runtime.js:147:20)
@e/frontend:build: at 297833 (.next/server/chunks/[root-of-the-server]__952c100a._.js:211:1453)
@e/frontend:build: at instantiateModule (.next/server/chunks/[turbopack]_runtime.js:594:23)
@e/frontend:build: at getOrInstantiateModuleFromParent (.next/server/chunks/[turbopack]_runtime.js:653:12)
@e/frontend:build: at esmImport (.next/server/chunks/[turbopack]_runtime.js:132:20)
@e/frontend:build: at 993367 (.next/server/chunks/[root-of-the-server]__952c100a._.js:211:453467) {
@e/frontend:build: code: 'ERR_INVALID_ARG_TYPE'
@e/frontend:build: }

prisma schema

generator client {
 provider = "prisma-client-js"
 output = "./client"
 binaryTargets = ["native", "linux-arm64-openssl-1.0.x", "linux-arm64-openssl-3.0.x"]
}

folder structure

packages/database // prisma lives here
apps/frontend // app that is being built lives here

prisma loaded in the frontend like this

import { PrismaClient } from "@e/database";
function createPrisma() {
 return new PrismaClient();
}
const globalForPrisma = global as unknown as {
 prisma: ReturnType<typeof createPrisma>;
};
export const prisma = globalForPrisma.prisma ?? createPrisma();
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;
export default prisma;

builds all ok without the turbo flag, and next dev --turbo also works fine

You must be logged in to vote
11 replies
Comment options

can you confirm that downgrading to 15.4.0-canary.35 breaks it again ?

Be interested to know which commit fixes it !

Comment options

My build was completed successfully on 15.4.0-canary.35.

Comment options

you know what my next comment will be haha

Comment options

looks possibly like it was this commit in canary-28 this hopefully fixes it

#78843

Comment options

I've checked, it's fixed in canary-28.

Comment options

Build Performance Comparison

Tool Build Type Compiled Time (s) Total CLI Time (s)
Webpack Clean Build 7 21
Webpack Cache (.next) 1 13
Turbo Pack Clean Build 4 13
Turbo Pack Cache (.next) 3.3 12
pn build
> ezy-docs@0.5.0 build /Users/appifylab/projects/ezy-docs
> next build
 さんかく Next.js 15.3.0
 - Environments: .env.local
 Creating an optimized production build ...
 ✓ Compiled successfully in 7.0s
 Skipping validation of types
 Skipping linting
 ✓ Collecting page data 
 ✓ Generating static pages (4/4)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
Route (app) Size First Load JS 
┌ ƒ / 2.32 kB 133 kB
├ しろまる /_not-found 978 B 102 kB
├ ƒ /article/[slug] 2.61 kB 133 kB
├ ƒ /category 2.2 kB 133 kB
├ ƒ /category/[slug]/sub-category/[subcatslug] 2.37 kB 128 kB
└ ƒ /changelogs 7.64 kB 151 kB
+ First Load JS shared by all 101 kB
 ├ chunks/52-e8402719e4d1ad35.js 46 kB
 ├ chunks/ff3c9725-c5b700e0ea0fb4fd.js 53.2 kB
 └ other shared chunks (total) 1.95 kB
しろまる (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
next build
 さんかく Next.js 15.3.0
 - Environments: .env.local
 Creating an optimized production build ...
 ✓ Compiled successfully in 1000ms
 Skipping validation of types
 Skipping linting
 ✓ Collecting page data 
 ✓ Generating static pages (4/4)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
Route (app) Size First Load JS 
┌ ƒ / 2.32 kB 133 kB
├ しろまる /_not-found 978 B 102 kB
├ ƒ /article/[slug] 2.61 kB 133 kB
├ ƒ /category 2.2 kB 133 kB
├ ƒ /category/[slug]/sub-category/[subcatslug] 2.37 kB 128 kB
└ ƒ /changelogs 7.64 kB 151 kB
+ First Load JS shared by all 101 kB
 ├ chunks/52-e8402719e4d1ad35.js 46 kB
 ├ chunks/ff3c9725-c5b700e0ea0fb4fd.js 53.2 kB
 └ other shared chunks (total) 1.95 kB
しろまる (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
next build --turbopack
 さんかく Next.js 15.3.0 (Turbopack)
 - Environments: .env.local
 Creating an optimized production build ...
 ✓ Compiled successfully in 4.0s
 Skipping validation of types
 Skipping linting
 ✓ Collecting page data 
 ✓ Generating static pages (4/4)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
Route (app) Size First Load JS 
┌ ƒ / 0 B 231 kB
├ しろまる /_not-found 0 B 208 kB
├ ƒ /article/[slug] 0 B 232 kB
├ ƒ /category 0 B 231 kB
├ ƒ /category/[slug]/sub-category/[subcatslug] 0 B 232 kB
└ ƒ /changelogs 6.25 kB 237 kB
+ First Load JS shared by all 223 kB
 ├ chunks/0598923cce7c1012.js 16.8 kB
 ├ chunks/11838eb019cc7b6d.js 68.7 kB
 ├ chunks/315500f1e88fb2d2.js 23.3 kB
 └ chunks/70ecbd444a5a71b7.js 13.6 kB
 ├ chunks/873782b4d9574c7c.js 61.4 kB
 ├ chunks/2cc6b13d4c89e368.css 15.6 kB
 └ other shared chunks (total) 23.8 kB
しろまる (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
 ⚠ Support for Turbopack builds is experimental. We don't recommend deploying mission-critical applications to production.
- Turbopack currently always builds production sourcemaps for the browser. This will include project sourcecode if deployed to production.
- It is expected that your bundle size might be different from `next build` with webpack. This will be improved as we work towards stability.
- This build is without disk caching; subsequent builds will become faster when disk caching becomes available.
- When comparing output to webpack builds, make sure to first clear the Next.js cache by deleting the `.next` directory.
Provide feedback for Turbopack builds at https://github.com/vercel/next.js/discussions/77721
❯ pn build
> ezy-docs@0.5.0 build /Users/appifylab/projects/ezy-docs
> next build --turbopack
 さんかく Next.js 15.3.0 (Turbopack)
 - Environments: .env.local
 Creating an optimized production build ...
 ✓ Compiled successfully in 3.3s
 Skipping validation of types
 Skipping linting
 ✓ Collecting page data 
 ✓ Generating static pages (4/4)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
Route (app) Size First Load JS 
┌ ƒ / 0 B 231 kB
├ しろまる /_not-found 0 B 208 kB
├ ƒ /article/[slug] 0 B 232 kB
├ ƒ /category 0 B 231 kB
├ ƒ /category/[slug]/sub-category/[subcatslug] 0 B 232 kB
└ ƒ /changelogs 6.25 kB 237 kB
+ First Load JS shared by all 223 kB
 ├ chunks/0598923cce7c1012.js 16.8 kB
 ├ chunks/11838eb019cc7b6d.js 68.7 kB
 ├ chunks/315500f1e88fb2d2.js 23.3 kB
 └ chunks/70ecbd444a5a71b7.js 13.6 kB
 ├ chunks/873782b4d9574c7c.js 61.4 kB
 ├ chunks/2cc6b13d4c89e368.css 15.6 kB
 └ other shared chunks (total) 23.8 kB
しろまる (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
 ⚠ Support for Turbopack builds is experimental. We don't recommend deploying mission-critical applications to production.
- Turbopack currently always builds production sourcemaps for the browser. This will include project sourcecode if deployed to production.
- It is expected that your bundle size might be different from `next build` with webpack. This will be improved as we work towards stability.
- This build is without disk caching; subsequent builds will become faster when disk caching becomes available.
- When comparing output to webpack builds, make sure to first clear the Next.js cache by deleting the `.next` directory.
You must be logged in to vote
0 replies
Comment options

خیلیییی سریعه 🔥🔥

You must be logged in to vote
0 replies
Comment options

I with my small project don't see any performance benefits. Are we only supposed to see the benefits in bigger projects? I have even tried running the build command multiple times to see if i would get better results without any luck. I ran each of these with a clean build first.

Hardware:
Apple M1 Max
Memory: 32GB
MacOS: 15.4

running without --turbo

> next build
 さんかく Next.js 15.3.0
 - Experiments (use with caution):
 ✓ useCache
 Creating an optimized production build ...
 ✓ Compiled successfully in 1000ms
 ✓ Linting and checking validity of types 
 ✓ Collecting page data 
 ✓ Generating static pages (6/6)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
Route (app) Size First Load JS 
┌ ƒ / 572 B 372 kB
├ ƒ /_not-found 990 B 105 kB
└ ƒ /login 572 B 372 kB
+ First Load JS shared by all 104 kB
 ├ chunks/1684-3cc8d39bf08bda7e.js 46.4 kB
 ├ chunks/4bd1b696-79901f1c062801da.js 53.2 kB
 └ other shared chunks (total) 4.83 kB
ƒ Middleware 33.3 kB
ƒ (Dynamic) server-rendered on demand
npm run build 15.84s user 2.25s system 183% cpu 9.886 total

hyperfine benchmark
Screenshot 2025年04月10日 at 11 48 04


running with --turbo

> next build --turbopack
 ⚠ The config property `experimental.turbo` is deprecated. Move this setting to `config.turbopack` as Turbopack is now stable.
 さんかく Next.js 15.3.0 (Turbopack)
 - Experiments (use with caution):
 · turbo
 ✓ useCache
 Creating an optimized production build ...
 ✓ Compiled successfully in 2.9s
 ✓ Linting and checking validity of types 
 ✓ Collecting page data 
 ✓ Generating static pages (6/6)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
Route (app) Size First Load JS 
┌ ƒ / 0 B 420 kB
├ ƒ /_not-found 0 B 420 kB
└ ƒ /login 0 B 420 kB
+ First Load JS shared by all 422 kB
 ├ chunks/1fa3394cc56fb597.js 77.1 kB
 ├ chunks/780cf8f2a2a5b7ec.js 13.1 kB
 ├ chunks/7e8ef395dd44ad63.js 270 kB
 ├ chunks/e694e57256351634.js 18.9 kB
 └ other shared chunks (total) 42.9 kB
ƒ Middleware 50.5 kB
ƒ (Dynamic) server-rendered on demand
 ⚠ Support for Turbopack builds is experimental. We don't recommend deploying mission-critical applications to production.

- Turbopack currently always builds production sourcemaps for the browser. This will include project sourcecode if deployed to production.
- It is expected that your bundle size might be different from `next build` with webpack. This will be improved as we work towards stability.
- This build is without disk caching; subsequent builds will become faster when disk caching becomes available.
- When comparing output to webpack builds, make sure to first clear the Next.js cache by deleting the `.next` directory.

Provide feedback for Turbopack builds at https://github.com/vercel/next.js/discussions/77721
npm run build 22.58s user 3.21s system 237% cpu 10.879 total

hyperfine benchmark
Screenshot 2025年04月10日 at 11 47 41

You must be logged in to vote
3 replies
Comment options

timneutkens Apr 10, 2025
Maintainer Author

Did you delete .next between runs? Based on the steps doesn't seem that way so you'd be comparing a cached webpack build vs Turbopack cold.

Comment options

Hi, I actually did delete the .next folder between runs. That's what I ment by "I ran each of these with a clean build first.".

I had the same thoughts as you to begin with and ended up running the benchmarks more than 3 times :)

Comment options

timneutkens Apr 14, 2025
Maintainer Author

Yeah fair, given this app is super small not expecting much wins, it compiles with webpack in <1s already. Could you share the project so I can compare and check why it takes longer with Turbopack. If you have e.g. Tailwind that could be the reason because we have to boot a separate Node.js process for it.

Comment options

Probably some unhandled cases in crates/next-api/src/dynamic_imports.rs:70:26:

image

After investigating the reason, it is because dynamic imports in a route handler that referenced client components

You must be logged in to vote
1 reply
Comment options

timneutkens Apr 10, 2025
Maintainer Author

Sounds like the same as #77036

Comment options

It is a vast improvement from webpack. In Webpack it takes 10 mins to compile and with --turbo it only take 10 seconds.
trace-to-tree tell me node-file-trace-plugin took over 500 seconds to run on webpack.

You must be logged in to vote
0 replies
Comment options

Using Turbo with @next/mdx crashes builds if the project contains markdown pages. The type of router doesn’t matter.

Reproduction: https://github.com/remcohaszing/turbo-markdown-error

You must be logged in to vote
0 replies
Comment options

Can we turn off Source maps manually?

You must be logged in to vote
0 replies
Comment options

We ran into two problems which directly crash the build (15.3.1-canary.8)

Turbopack crashes with SWC plugins when using absolute paths in swcPlugins configuration #78156

./
Module not found: Can't resolve './path/to/yak-n-run/node_modules/yak-swc/target/wasm32-wasip1/release/yak_swc.wasm'
server relative imports are not implemented yet. Please try an import relative to the file you are importing from.
./
Module not found: Can't resolve '/path/to/yak-n-run/node_modules/yak-swc/target/wasm32-wasip1/release/yak_swc.wasm'
https://nextjs.org/docs/messages/module-not-found
 at <unknown> (https://nextjs.org/docs/messages/module-not-found)
 at <unknown> (https://nextjs.org/docs/messages/module-not-found)
 at <unknown> (https://nextjs.org/docs/messages/module-not-found)
 at <unknown> (https://nextjs.org/docs/messages/module-not-found)
 at <unknown> (https://nextjs.org/docs/messages/module-not-found)
 at <unknown> (https://nextjs.org/docs/messages/module-not-found)
 at <unknown> (https://nextjs.org/docs/messages/module-not-found)
 at <unknown> (https://nextjs.org/docs/messages/module-not-found)

SWC plugin context in Turbopack includes only basename instead of full path #78181

thread 'thread '<unnamed><unnamed>' panicked at ' panicked at relative_posix_path/src/lib.rsrelative_posix_path/src/lib.rs::1717::59:
59: Could not create relative pathCould not create relative path
Processing file: layout.tsx
Debug info:
- Execution of TaskId { id: 2147483651 } transient failed
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of all_assets_from_entries_operation failed
- Execution of output_assets_operation failed
- Execution of <PageEndpoint as Endpoint>::output failed
- Failed to write page endpoint /_error
- Execution of PageEndpoint::output failed
- Execution of PageEndpoint::client_chunks failed
- Execution of Project::client_chunking_context failed
- Execution of Project::module_ids failed
- Execution of Project::whole_app_module_graphs failed
- Execution of whole_app_module_graph_operation failed
- Execution of Project::get_all_entries failed
- Execution of <AppEndpoint as Endpoint>::entries failed
- Execution of get_app_page_entry failed
- Execution of Transition::process failed
- Execution of apply_module_type failed
- Execution of <EcmascriptModuleAsset as EcmascriptChunkPlaceable>::get_exports failed
- Execution of analyse_ecmascript_module failed
- failed to analyse ecmascript module '[project]/packages/example/app/layout.tsx [app-rsc] (ecmascript)'
- Execution of parse failed
- failed to parse [project]/packages/example/app/layout.tsx
- Transforming and/or parsing of [project]/packages/example/app/layout.tsx failed
You must be logged in to vote
0 replies
Comment options

All working fine, but build size got bigger.
image

before and after almost doubled up artifact size
image

pn build
> ezy-docs@0.5.0 build /Users/appifylab/projects/ezy-docs
> next build --turbopack
 さんかく Next.js 15.5.0 (Turbopack)
 - Environments: .env.local
 Creating an optimized production build ...
 ✓ Finished writing to disk in 91ms
 ✓ Compiled successfully in 1880ms
 Skipping validation of types
 Skipping linting
 ✓ Collecting page data 
 ✓ Generating static pages (6/6)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
Route (app) Size First Load JS 
┌ ƒ / 0 B 167 kB
├ しろまる /_not-found 0 B 144 kB
├ ƒ /article/[slug] 0 B 167 kB
├ しろまる /article/sitemap.xml 0 B 0 B
├ ƒ /category 0 B 167 kB
├ ƒ /category/[slug]/sub-category/[subcatslug] 0 B 167 kB
├ ƒ /changelogs 8.29 kB 175 kB
└ しろまる /main/sitemap.xml 0 B 0 B
+ First Load JS shared by all 154 kB
 ├ chunks/c026cfc5e9b9c759.js 58.9 kB
 └ chunks/cee64ee8df199415.js 17.1 kB
 ├ chunks/cf417248e3b52179.js 24.1 kB
 ├ chunks/fc3d36c92db5cbec.js 14.1 kB
 └ other shared chunks (total) 39.7 kB
しろまる (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
❯ pn build
> ezy-docs@0.5.0 build /Users/appifylab/projects/ezy-docs
> next build
 さんかく Next.js 15.5.0
 - Environments: .env.local
 Creating an optimized production build ...
 ✓ Compiled successfully in 4.3s
 Skipping validation of types
 Skipping linting
 ✓ Collecting page data 
 ✓ Generating static pages (6/6)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
Route (app) Size First Load JS 
┌ ƒ / 2.19 kB 134 kB
├ しろまる /_not-found 983 B 103 kB
├ ƒ /article/[slug] 2.37 kB 134 kB
├ しろまる /article/sitemap.xml 127 B 102 kB
├ ƒ /category 2.19 kB 134 kB
├ ƒ /category/[slug]/sub-category/[subcatslug] 2.36 kB 129 kB
├ ƒ /changelogs 9.76 kB 154 kB
└ しろまる /main/sitemap.xml 127 B 102 kB
+ First Load JS shared by all 102 kB
 ├ chunks/447-a0bc0361091f76b2.js 45.7 kB
 ├ chunks/d848c799-f2ce61d14f4a36fa.js 54.2 kB
 └ other shared chunks (total) 1.94 kB
しろまる (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
Operating System:
 Platform: darwin
 Arch: arm64
 Version: Darwin Kernel Version 24.5.0: Tue Apr 22 19:54:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T8112
 Available memory (MB): 16384
 Available CPU cores: 8
Binaries:
 Node: 22.15.0
 npm: 10.9.2
 Yarn: N/A
 pnpm: 10.15.0
Relevant Packages:
 next: 15.5.0 // Latest available version is detected (15.5.0).
 eslint-config-next: 15.5.0
 react: 19.1.1
 react-dom: 19.1.1
 typescript: 5.9.2
Next.js Config:
 output: N/A
You must be logged in to vote
3 replies
Comment options

Same issues as mine. Do you use dynamic() a lot? With Turbopack, my asset size is roughly what it was before we refactored the project to use lots of dynamic imports, so I'm wondering if Turbopack is not putting those files into separate bundles.

Comment options

Comment options

Be sure to check the actual sizes loaded for your routes. webpack and turbopack organize chunks in different ways that could explain the deltas, also The metrics repoted by next build are sadly not comparable between webpack and turbopack builds since they are computed in varying buggy ways.

We are removing those metrics in next 16. see #83815

Comment options

--turopack build breaks https://www.npmjs.com/package/otpauth on the web

Here's reproduction code:

import { TOTP } from 'otpauth';
export const generateTimedOTP = (secret: string) => {
 const totp = new TOTP({
 secret,
 digits: 6,
 algorithm: 'sha1',
 period: 30,
 });
 return {
 otp: totp.generate(),
 expiration: new Date(Date.now() + totp.period * 1000),
 };
};

calling generateTimedOTP('msswpzqmfjau52tw247m4eoyjqnwmb6h') call will produce this error:

8ca45a428deca02c.js:1 Uncaught TypeError: Cannot read properties of undefined (reading 'byteLength')
 at iq.generate (8ca45a428deca02c.js:1:262774)
 at iW.generate (8ca45a428deca02c.js:1:265449)
 at iW.generate (8ca45a428deca02c.js:1:265641)
 at 8ca45a428deca02c.js:1:272662
 at 8ca45a428deca02c.js:1:272720
You must be logged in to vote
1 reply
Comment options

Has this been fixed?

Comment options

I had to disable turbopack because I had hydration errors due to Emotion (emotion-js/emotion#3308). Sometimes the pages are loaded correctly, sometimes the hydration error occurs and I have to refresh the page multiple times until it can render the page without errors, which was very frustrating, so I disabled turbopack for now.

You must be logged in to vote
0 replies
Comment options

typedRoutes is stable, but it doesn't work with turbopack. Can you enable it?

If I add it to the next.config.ts and I get the following error, and if I add it inside the experimental object, it says that it is not compatible with turbopack (this is for builds)

> next build --turbopack
 ⚠ Invalid next.config.ts options detected: 
 ⚠ Unrecognized key(s) in object: 'typedRoutes'
 ⚠ See more info here: https://nextjs.org/docs/messages/invalid-next-config
 さんかく Next.js 15.4.6 (Turbopack)
 - Environments: .env
 Creating an optimized production build ...
 ✓ Finished writing to disk in 157ms
 ✓ Compiled successfully in 2.1s
 ✓ Linting and checking validity of types 
 ✓ Collecting page data 
 ✓ Generating static pages (5/5)
 ✓ Collecting build traces 
 ✓ Finalizing page optimization 
You must be logged in to vote
5 replies
Comment options

This is not a turbopack compatibility issue; the feature is no longer experimental.

As you said

typedRoutes is stable

so you should not "add it inside the experimental object"

Comment options

The previous build log was using it without the experimental:

const nextConfig: NextConfig = {
 typedRoutes: true
}

Running the build with next build --turbopack I get this warning message:

 ⚠ Invalid next.config.ts options detected: 
 ⚠ Unrecognized key(s) in object: 'typedRoutes'

Copy/paste from this: https://nextjs.org/docs/app/api-reference/config/next-config-js/typedRoutes

Comment options

I have typedRoutes: true at the top level of my next.config.js and see no such warning during next build --turbopack

Comment options

You're right, it was a cache issue with the package manager. Solved, thanks!

Comment options

typed routes is working with turbopack as 15.5: https://nextjs.org/blog/next-15-5#typescript-improvements in the OP you are still on 15.4.6 which should explain this

Comment options

Here is my first-load JS being almost doubled with turbopack. I don't want to publicize my route tree, but can provide more details in private.

$ npm run build
> web@1.0.0 build
> NODE_ENV=production npm run build:icons && NODE_ENV=production next build
> web@1.0.0 build:icons
> npx tsx ./bin/build-icons.ts
Generating sprite for icons
removing [
 '/Users/dsaewitz/y/mm/popflash_modern/workspaces/web/public/svgs/118ae57bc8e93762f9fbcfd178d41d879d72544a7c90011b5699859d292e2e2c.svg'
]
Wrote file to: /Users/dsaewitz/y/mm/popflash_modern/workspaces/web/public/svgs/118ae57bc8e93762f9fbcfd178d41d879d72544a7c90011b5699859d292e2e2c.svg
Starting content-collections content-collections.ts
build started ...
... finished build of 3 collections and 39 documents in 30ms
 さんかく Next.js 15.5.2
 - Environments: .env
 - Experiments (use with caution):
 ⨯ mdxRs
 ✓ useCache
 ✓ authInterrupts
 ⨯ turbopackPersistentCaching
 Creating an optimized production build ...
 ✓ Compiled successfully in 14.7s
 Skipping linting
 ✓ Checking validity of types
 ⚠ Using edge runtime on a page currently disables static generation for that page
 ✓ Collecting page data
 ✓ Generating static pages (52/52)
 ✓ Collecting build traces
 ✓ Finalizing page optimization
Route (app) Size First Load JS
┌ ƒ [redacted route] 2.47 kB 258 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 6.42 kB 295 kB
├ ƒ [redacted route] 229 B 255 kB
├ ƒ [redacted route] 224 B 389 kB
├ ƒ [redacted route] 224 B 389 kB
├ ƒ [redacted route] 231 B 389 kB
├ ƒ [redacted route] 221 B 389 kB
├ ƒ [redacted route] 2.08 kB 257 kB
├ ƒ [redacted route] 3.53 kB 406 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 4.29 kB 274 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 347 B 256 kB
├ ƒ [redacted route] 2.17 kB 265 kB
├ ƒ [redacted route] 2.17 kB 265 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 572 B 256 kB
├ ƒ [redacted route] 6.85 kB 295 kB
├ ƒ [redacted route] 175 B 255 kB
├ ƒ [redacted route] 175 B 255 kB
├ ƒ [redacted route] 175 B 255 kB
├ ƒ [redacted route] 165 B 255 kB
├ ƒ [redacted route] 3.24 kB 291 kB
├ ƒ [redacted route] 175 B 255 kB
├ ƒ [redacted route] 2.09 kB 263 kB
├ ƒ [redacted route] 172 B 255 kB
├ ƒ [redacted route] 172 B 255 kB
├ ƒ [redacted route] 2.28 kB 350 kB
├ ƒ [redacted route] 237 B 255 kB
├ ƒ [redacted route] 4.92 kB 305 kB
├ ƒ [redacted route] 1.42 kB 292 kB
├ ƒ [redacted route] 893 B 256 kB
├ ƒ [redacted route] 10.1 kB 289 kB
├ ƒ [redacted route] 2.47 kB 258 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 174 B 255 kB
├ ƒ [redacted route] 960 B 260 kB
├ ƒ [redacted route] 179 B 255 kB
├ ƒ [redacted route] 355 B 256 kB
├ ƒ [redacted route] 3.01 kB 277 kB
├ ƒ [redacted route] 2.19 kB 272 kB
├ ƒ [redacted route] 350 B 271 kB
├ ƒ [redacted route] 390 B 271 kB
├ ƒ [redacted route] 129 B 260 kB
├ ƒ [redacted route] 129 B 260 kB
├ ƒ [redacted route] 6.61 kB 262 kB
├ ƒ [redacted route] 172 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 1.87 kB 257 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 172 B 255 kB
├ ƒ [redacted route] 1.22 kB 256 kB
├ ƒ [redacted route] 175 B 255 kB
├ ƒ [redacted route] 26.9 kB 282 kB
├ ƒ [redacted route] 198 B 255 kB
├ ƒ [redacted route] 208 B 255 kB
├ ƒ [redacted route] 208 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
├ ƒ [redacted route] 226 B 255 kB
└ しろまる [redacted route] 226 B 255 kB
+ First Load JS shared by all 255 kB
 ├ chunks/127c890b-9aa37ae64c6aebbd.js 54.2 kB
 ├ chunks/3908-92dedd78a53f3bb1.js 165 kB
 ├ chunks/ad74d572-938cb1bdf62f9dc9.js 11.4 kB
 ├ chunks/main-app-1163315253daaf3b.js 22.2 kB
 └ other shared chunks (total) 1.82 kB
ƒ Middleware 35.3 kB
しろまる (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
$ npm run build -- --turbo
> web@1.0.0 build
> NODE_ENV=production npm run build:icons && NODE_ENV=production next build --turbo
> web@1.0.0 build:icons
> npx tsx ./bin/build-icons.ts
Generating sprite for icons
removing [
 '/Users/dsaewitz/y/mm/popflash_modern/workspaces/web/public/svgs/118ae57bc8e93762f9fbcfd178d41d879d72544a7c90011b5699859d292e2e2c.svg'
]
Wrote file to: /Users/dsaewitz/y/mm/popflash_modern/workspaces/web/public/svgs/118ae57bc8e93762f9fbcfd178d41d879d72544a7c90011b5699859d292e2e2c.svg
Starting content-collections content-collections.ts
build started ...
... finished build of 3 collections and 39 documents in 29ms
 さんかく Next.js 15.5.2 (Turbopack)
 - Environments: .env
 - Experiments (use with caution):
 ⨯ mdxRs
 ✓ useCache
 ✓ authInterrupts
 ⨯ turbopackPersistentCaching
 Creating an optimized production build ...
 ✓ Finished writing to disk in 1617ms
 ✓ Compiled successfully in 10.3s
 Skipping linting
 ✓ Checking validity of types
 ⚠ Using edge runtime on a page currently disables static generation for that page
 ✓ Collecting page data
 ✓ Generating static pages (52/52)
 ✓ Collecting build traces
 ✓ Finalizing page optimization
Route (app) Size First Load JS
┌ ƒ [redacted route] 0 B 429 kB
├ ƒ [redacted route] 0 B 425 kB
├ ƒ [redacted route] 362 B 426 kB
├ ƒ [redacted route] 180 B 514 kB
├ ƒ [redacted route] 0 B 514 kB
├ ƒ [redacted route] 0 B 514 kB
├ ƒ [redacted route] 0 B 514 kB
├ ƒ [redacted route] 0 B 514 kB
├ ƒ [redacted route] 378 B 514 kB
├ ƒ [redacted route] 3.69 kB 530 kB
├ ƒ [redacted route] 0 B 426 kB
├ ƒ [redacted route] 5.85 kB 432 kB
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 873 B 426 kB
├ ƒ [redacted route] 0 B 448 kB
├ ƒ [redacted route] 0 B 448 kB
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 524 B 426 kB
├ ƒ [redacted route] 1.36 kB 427 kB
├ ƒ [redacted route] 0 B 425 kB
├ ƒ [redacted route] 0 B 425 kB
├ ƒ [redacted route] 0 B 425 kB
├ ƒ [redacted route] 800 B 426 kB
├ ƒ [redacted route] 5.77 kB 445 kB
├ ƒ [redacted route] 0 B 426 kB
├ ƒ [redacted route] 5.26 kB 442 kB
├ ƒ [redacted route] 0 B 426 kB
├ ƒ [redacted route] 0 B 438 kB
├ ƒ [redacted route] 48.6 kB 474 kB
├ ƒ [redacted route] 170 B 434 kB
├ ƒ [redacted route] 8.88 kB 452 kB
├ ƒ [redacted route] 11 kB 454 kB
├ ƒ [redacted route] 842 B 427 kB
├ ƒ [redacted route] 14.6 kB 440 kB
├ ƒ [redacted route] 0 B 429 kB
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 426 kB
├ ƒ [redacted route] 0 B 443 kB
├ ƒ [redacted route] 0 B 433 kB
├ ƒ [redacted route] 0 B 443 kB
├ ƒ [redacted route] 6.88 kB 448 kB
├ ƒ [redacted route] 468 B 434 kB
├ ƒ [redacted route] 10.8 kB 437 kB
├ ƒ [redacted route] 15.8 kB 441 kB
├ ƒ [redacted route] 0 B 428 kB
├ ƒ [redacted route] 0 B 428 kB
├ ƒ [redacted route] 5.75 kB 442 kB
├ ƒ [redacted route] 0 B 438 kB
├ ƒ [redacted route] 0 B 426 kB
├ ƒ [redacted route] 1.82 kB 427 kB
├ ƒ [redacted route] 0 B 426 kB
├ ƒ [redacted route] 0 B 438 kB
├ ƒ [redacted route] 1.18 kB 427 kB
├ ƒ [redacted route] 316 B 438 kB
├ ƒ [redacted route] 31.4 kB 457 kB
├ ƒ [redacted route] 0 B 439 kB
├ ƒ [redacted route] 0 B 439 kB
├ ƒ [redacted route] 0 B 439 kB
├ ƒ [redacted route] 0 B 0 B
├ ƒ [redacted route] 0 B 0 B
└ しろまる [redacted route] 0 B 0 B
+ First Load JS shared by all 438 kB
 ├ chunks/0510d593d610e05b.js 30.5 kB
 ├ chunks/20ec3d58decfb90b.js 16.7 kB
 ├ chunks/309b443449415b51.js 23.9 kB
 ├ chunks/3c85baeced9ac730.js 17.7 kB
 ├ chunks/5100dded8c21e3fa.js 20.9 kB
 ├ chunks/86311dad21ef654e.js 12.5 kB
 ├ chunks/a40c716b042ba0b8.js 12.7 kB
 ├ chunks/a52a380bea5b4b5f.js 17.5 kB
 ├ chunks/b09ebf94c4704cfd.js 54.7 kB
 ├ chunks/b576e60a64f54831.js 11 kB
 ├ chunks/c3f9e1dd24aaa1b2.js 42.3 kB
 └ chunks/c67f8d7e032ddc8d.js 11.8 kB
 ├ chunks/d078a8f6b36d2509.js 59.3 kB
 ├ chunks/d3f64d4dfec79c3d.js 32.4 kB
 ├ chunks/d909d5cb663d8e68.css 23.4 kB
 └ other shared chunks (total) 50.8 kB
ƒ [redacted route] 43.9 kB
しろまる (Static) prerendered as static content
ƒ [redacted route] server-rendered on demand
You must be logged in to vote
1 reply
Comment options

Hi, thanks for the report.

We looked into this and determined that webpack and turbopack were computing these numbers in completely different ways, 😱 .

you can see #83815 for the nitty gritty

we are thus removing these metrics in the next major release

Comment options

adobe's react-aria-components has this simple webpack plugin to avoid bundling unused locales. is something like this possible to port to turbopack: https://github.com/adobe/react-spectrum/blob/main/packages/dev/optimize-locales-plugin/LocalesPlugin.js

You must be logged in to vote
1 reply
Comment options

I've been looking at the same thing.

The following config seems to do the trick for me with the latest canary (thanks to the recently added condition improvements for the loader setup):

turbopack: {
 rules: {
 "*": [
 {
 condition: {
 all: [
 "foreign",
 "browser",
 {
 path: /(@react-stately|@react-aria|@react-spectrum|react-aria-components)\/.*\/[a-z]{2}-[A-Z]{2}/,
 },
 ],
 },
 loaders: ["null-loader"],
 options: {},
 as: "*.js",
 },
 ],

This assumes you were using { locales: [] } and writing the current locale strings using <LocalizedStringProvider locale={locale} />.

I couldn't figure out how to get it to work using a lighter resolveAlias config, maybe the experts in the thread can chime in.

Comment options

would love if have plugin to analyze the bundle size like @next/bundle-analyzer for webpack build

You must be logged in to vote
1 reply
Comment options

Comment options

I was using nextjs v15.5.4

Have been using google fonts with below url, imported through an scss file. but this URL was not included in my css file when I checked network request's css file that's why my site's fonts were not loading.

@import url('https://fonts.googleapis.com/css2?family=Wix+Madefor+Text:ital,wght@0,400..800;1,400..800&display=swap');

Tried multiple versions of sass but it turned out that it wasn't an issue, but as soon as I removed --turbopack from my next dev command, it worked, the URL was correctly loaded and fonts were applied to webpage.

You must be logged in to vote
1 reply
Comment options

Might be related to my feedback below?

Comment options

We've started seeing a lot of errors like the below in Sentry, after using turbopack in production

Failed to load chunk /_next/static/chunks/3a5b75ab35f5a94e.js from module 672320

Which seems to be identical to #82651

You must be logged in to vote
0 replies
Comment options

I have a use case where i need to generate deterministic CSS module classnames. This was possible with webpack system on next, but doesn't appear to be exposed in lightning css options via turbopack. Is there something I'm missing? Thanks

You must be logged in to vote
1 reply
Comment options

any update on this? I'm simply hoping we can pass the existing pattern option to the lightningcss setup

Comment options

Question for a topic from June about generated pages chunks filenames are not unique between builds.

Original comment here: #77721 (comment)

Thanks for the feedback. There are reasons we tell you not to deploy the alpha to your users 🙂 This is one of them. It's on our list to implement before a beta is released.

Is this list available somewhere?

To be honest - I was observing the https://areweturboyet.com/ - it is saying that turbo is production-ready. But looks like it is very misleading - this production ready is about passed unit-tests, not that whole turbopack build is production ready. We were testing it on our staging environments for a month, and we had huge problems with cached pages chunks.

The problem is also happening on dev mode - but usually devs are spamming hard-refresh so it could be easily missed.

My point is - clearly (as offical docs says) turbopack production build is not yet production ready - but i could not find any list of features/bugs crucial to be updated before going production.

Nonetheless, very thanks for your hardwork! Turbopack results are awesome and I can't wait to reduce our build time to seconds instead of minutes :D

You must be logged in to vote
3 replies
Comment options

so this is still not fixed? 👀
Next 16 is in beta which includes "stable" turbopack for builds and it's made the default, I'd guess that means also Turbopack is considered a beta, but probably not yet.

Comment options

This is fixed by #81450 released in v15.5. What version are you on? We did consider this one of the blocking issues for turbopack builds even becoming beta, which we did in 15.5.

Comment options

🤦‍♂️ lol, I was checking it quickly time-to-time but always forgot to switch to correct branch with newer versions. I was using always same version - 15.3.1. Thanks for such quick response! 🙌

Comment options

Is anyone having trouble with JSDom (or isomorphic-dompurify), when deploying to Vercel?

Failed to load external module isomorphic-dompurify: Error: ENOENT: no such file or directory, open '/var/task/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.css'

thrown from here:

 // TODO(alexkirsz) This can happen when a client-side module tries to load
 // an external module we don't provide a shim for (e.g. querystring, url).
 // For now, we fail semi-silently, but in the future this should be a
 // compilation error.
 throw new Error(`Failed to load external module ${id}: ${err}`);

I assume something has decided not to provide that file to the deployment or something?

You must be logged in to vote
0 replies
Comment options

Upgrading from 15.5.4 to 16. Having that issue on 2 apps in a monorepo with turbo. Another app without turbo not throwing the error.

thread 'tokio-runtime-worker' (16499382) panicked at /Users/jj/dev/actions-runner/_work/next.js/next.js/turbopack/crates/turbo-tasks-backend/src/backe
nd/mod.rs:1514:13:
Dependency tracking is disabled so invalidation is not allowed
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'tokio-runtime-worker' (16499384) panicked at /Users/jj/dev/actions-runner/_work/next.js/next.js/turbopack/crates/turbo-tasks-backend/src/backe
nd/mod.rs:1514:13:
Dependency tracking is disabled so invalidation is not allowed
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
-----
FATAL: An unexpected Turbopack error occurred. A panic log has been written to /var/folders/l9/dmz2bw8s425192bsdyz6_43w0000gn/T/next-panic-a83556313bd
c9f43e48e789c2eef0d50.log.
To help make Turbopack better, report this error by clicking here.
-----
> Build error occurred
Error [TurbopackInternalError]: Dependency tracking is disabled so invalidation is not allowed at /Users/jj/dev/actions-runner/_work/next.js/next.js/t
urbopack/crates/turbo-tasks-backend/src/backend/mod.rs:1514:13
 at <unknown> (TurbopackInternalError: Dependency tracking is disabled so invalidation is not allowed at /Users/jj/dev/actions-runner/_work/next.js
/next.js/turbopack/crates/turbo-tasks-backend/src/backend/mod.rs:1514:13) {
 type: 'TurbopackInternalError',
 location: '/Users/jj/dev/actions-runner/_work/next.js/next.js/turbopack/crates/turbo-tasks-backend/src/backend/mod.rs:1514:13'
}
You must be logged in to vote
0 replies
Comment options

As already stated in the closed issues #42651 missing Yarn PnP support.

~/.nvm/versions/node/v22.18.0/bin/node ~/projects/tb/.yarn/releases/yarn-4.9.2.cjs run dev
 さんかく Next.js 16.0.0 (Turbopack)
 - Local: http://localhost:3000
 - Network: http://192.168.178.101:3000
 - Environments: .env.local, .env
 ✓ Starting...
Error: Turbopack build failed with 1 errors:
./src/app
Error: Next.js inferred your workspace root, but it may not be correct.
 We couldn't find the Next.js package (next/package.json) from the project directory: ~/projects/tb/src/app
 To fix this, set turbopack.root in your Next.js config, or ensure the Next.js package is resolvable from this directory.
 Note: For security and performance reasons, files outside of the project directory will not be compiled.
 See https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack#root-directory for more information.
 at ignore-listed frames
Process finished with exit code 1
You must be logged in to vote
0 replies
Comment options

We've been trying to update to Next 16 and switch to turbopack but I get this error with scss modules on my Windows 11 machine - my colleague on a mac can run the app with no issues.

Error evaluating Node.js code
Error: Can't find stylesheet to import.
 ╷
1 │ @use "./colors";
 │ ^^^^^^^^^^^^^^^
 ╵
 ..\..\packages\styles\_<module>.scss 1:1 @use
 ..\..\packages\shared-ui\components\<component>\<component>.module.scss 3:1 root stylesheet
Caused by: Error: Can't find stylesheet to import.
 ╷
1 │ @use "./colors";
 │ ^^^^^^^^^^^^^^^
 ╵
 ..\..\packages\styles\_<module>.scss 1:1 @use
 ..\..\packages\shared-ui\components\<component>\<component>.module.scss 3:1 root stylesheet
 [at Object.wrapException (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:2302:47)]
 [at C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:87480:25]
 [at _wrapJsFunctionForAsync_closure.$protected (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:4921:15)]
 [at _wrapJsFunctionForAsync_closure.call2ドル (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:38012:12)]
 [at _awaitOnObject_closure.call1ドル (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:38000:32)]
 [at Object._rootRunUnary (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:5339:18)]
 [at StaticClosure.<anonymous> (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:124453:16)]
 [at _CustomZone.runUnary2ドル2ドル (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:39444:39)]
 [at _Future__propagateToListeners_handleValueCallback.call0ドル (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:38502:51)]
 [at Object._Future__propagateToListeners (C:\dev\<repo>\node_modules\.pnpm\sass@1.89.2\node_modules\sass\sass.dart.js:5131:93)]
Import traces:
 Client Component Browser:
 ./packages/shared-ui/components/<component>/<component>.module.scss [Client Component Browser]
 ./packages/shared-ui/components/<component>/<component>.tsx [Client Component Browser]
 ./packages/shared-ui/components/<component>/<component>.tsx [Server Component]
 ./packages/shared-ui/components/<component>/index.ts [Server Component]
 ./apps/<app>/src/app/layout.tsx [Server Component]
 Client Component SSR:
 ./packages/shared-ui/components/<component>/<component>.module.scss [Client Component SSR]
 ./packages/shared-ui/components/<component>/<component>.tsx [Client Component SSR]
 ./packages/shared-ui/components/<component>/<component>.tsx [Server Component]
 ./packages/shared-ui/components/<component>/index.ts [Server Component]
 ./apps/<app>/src/app/layout.tsx [Server Component]

For reference, we're using pnpm with workspaces - additional info:

  • <app> references shared-ui as "shared-ui": "workspace:*" in the package.json
  • shared-ui package references styles as "styles": "workspace:*" in the package.json
  • _colors.scss is a sibling of styles/_<module>.scss so uses a relative import
  • Our next.config.js only has changes in the webpack and turbopack properties for *.svg to use @svgr/webpack

As I said before, my colleague with the same code on a mac can run the app with no problems using turbopack. I can run the app fine when I do next dev --webpack on Next 16.

Our sass version hasn't changed but the sass-loader will have. The turbopack config docs suggest sass-loader is configured automatically, so it should just work.

Note: I've obfuscated some of the naming above with <...>.

You must be logged in to vote
2 replies
Comment options

Comment options

Thanks, we had seen this and checked - we're not using any ~ in paths (forgot to mention above).
I've tried with the "~*": "*" alias anyway but to no avail.

Updating to sass@1.93.2 and sass-loader@6.0.6 (latest at time of writing) doesn't make a difference either.

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

AltStyle によって変換されたページ (->オリジナル) /