{"record":{"id":"20912925350b75f3","repo":"vercel/next.js","slug":"turbopack-is-not-supported-on-this-platform-pro","errorCode":null,"errorMessage":"Turbopack is not supported on this platform (${process.platform}/${process.arch}) because native bindings are not available. Only WebAssembly (WASM) bindings were loaded, and Turbopack requires native bindings.\n\nTo use Next.js on this platform, use Webpack instead:\n  next dev --webpack\n\nFor more information, see: https://nextjs.org/docs/app/api-reference/turbopack#supported-platforms","messagePattern":"Turbopack is not supported on this platform \\((.+?)/(.+?)\\) because native bindings are not available\\. Only WebAssembly \\(WASM\\) bindings were loaded, and Turbopack requires native bindings\\.\n\nTo use Next\\.js on this platform, use Webpack instead:\n  next dev --webpack\n\nFor more information, see: https://nextjs\\.org/docs/app/api-reference/turbopack#supported-platforms","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"packages/next/src/server/dev/hot-reloader-turbopack.ts","lineNumber":378,"sourceCode":"\nexport async function createHotReloaderTurbopack(\n  opts: SetupOpts & { isSrcDir: boolean },\n  serverFields: ServerFields,\n  distDir: string,\n  resetFetch: () => void,\n  lockfile: Lockfile | undefined,\n  serverFastRefresh?: boolean\n): Promise<NextJsHotReloaderInterface> {\n  const dev = true\n  const buildId = 'development'\n  const { nextConfig, dir: projectPath } = opts\n\n  const bindings = getBindingsSync()\n\n  // Turbopack requires native bindings and cannot run with WASM bindings.\n  // Detect this early and give a clear, actionable error message.\n  if (bindings.isWasm) {\n    throw new Error(\n      `Turbopack is not supported on this platform (${process.platform}/${process.arch}) because native bindings are not available. ` +\n        `Only WebAssembly (WASM) bindings were loaded, and Turbopack requires native bindings.\\n\\n` +\n        `To use Next.js on this platform, use Webpack instead:\\n` +\n        `  next dev --webpack\\n\\n` +\n        `For more information, see: https://nextjs.org/docs/app/api-reference/turbopack#supported-platforms`\n    )\n  }\n\n  // For the debugging purpose, check if createNext or equivalent next instance setup in test cases\n  // works correctly. Normally `run-test` hides output so only will be visible when `--debug` flag is used.\n  if (isTestMode) {\n    ;(require('console') as typeof import('console')).log(\n      'Creating turbopack project',\n      {\n        dir: projectPath,\n        testMode: isTestMode,\n      }\n    )","sourceCodeStart":360,"sourceCodeEnd":396,"githubUrl":"https://github.com/vercel/next.js/blob/0ae8c72462952df163f1b1e0726641bc5b40dc93/packages/next/src/server/dev/hot-reloader-turbopack.ts#L360-L396","documentation":"Thrown during Turbopack hot-reloader creation when getBindingsSync() returns WASM-only bindings (bindings.isWasm is true). Turbopack is a native Rust bundler and cannot run on the WASM fallback; Next.js detects this early in createHotReloaderTurbopack and aborts with an actionable message pointing to webpack. This happens at dev-server startup, before any request is served.","triggerScenarios":"Running `next dev` (Turbopack, the default) on a platform/arch combination for which no native @next/swc binary is published, so the install fell back to the WASM bindings. Detected via bindings.isWasm in createHotReloaderTurbopack.","commonSituations":"Running on an unusual architecture (e.g. some non-x64/arm64 setups), an alpine/musl variant without the right native binary, or a locked-down environment that stripped the native .node binary. A pnpm/npm install that failed to fetch the platform-specific optionalDependency and silently installed the wasm package instead.","solutions":["Run the dev server with webpack instead: `next dev --webpack`.","Reinstall dependencies to fetch the correct native binary: delete node_modules and package-lock/pnpm-lock, then reinstall.","Verify your platform/arch is in the supported list at the URL in the message; if not, use webpack or a supported runtime.","On alpine/musl, switch to a glibc-based image or install the musl-compatible native binary if available."],"exampleFix":"# before (fails: only WASM bindings present)\nnext dev\n\n# after\nnext dev --webpack","handlingStrategy":"fallback","validationCode":"// Decide at runtime whether to use Turbopack or fall back to webpack\nimport { getBindingsSync } from '@next/swc'\nfunction pickBundlerFlag(): string[] {\n  try {\n    const b = getBindingsSync()\n    if (b.isWasm) return ['--webpack'] // Turbopack unusable; fall back\n  } catch {}\n  return [] // native bindings present, Turbopack OK\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin a supported platform/arch for production.","Verify native @next/swc binary installs (no MODULE_NOT_FOUND) after install.","Keep `next dev --webpack` documented as the escape hatch for unsupported platforms."],"tags":["turbopack","platform","wasm","bundler"],"analyzedSha":"0ae8c72462952df163f1b1e0726641bc5b40dc93","analyzedAt":"2026-08-06T19:44:29.143Z","schemaVersion":2},"datasetVersion":"2026-08-07T02:17:10.218Z"}