{"record":{"id":"3eda5e2791db5f09","repo":"facebook/react","slug":"could-not-find-the-module-modulepath-in-the-r-3eda5e","errorCode":null,"errorMessage":"Could not find the module \"${modulePath}\" in the React Client Manifest. This is probably a bug in the React Server Components bundler.","messagePattern":"Could not find the module \"(.+?)\" in the React Client Manifest\\. This is probably a bug in the React Server Components bundler\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"critical","filePath":"packages/react-server-dom-webpack/src/server/ReactFlightServerConfigWebpackBundler.js","lineNumber":66,"sourceCode":"): ClientReferenceMetadata {\n  const modulePath = clientReference.$$id;\n  let name = '';\n  let resolvedModuleData = config[modulePath];\n  if (resolvedModuleData) {\n    // The potentially aliased name.\n    name = resolvedModuleData.name;\n  } else {\n    // We didn't find this specific export name but we might have the * export\n    // which contains this name as well.\n    // TODO: It's unfortunate that we now have to parse this string. We should\n    // probably go back to encoding path and name separately on the client reference.\n    const idx = modulePath.lastIndexOf('#');\n    if (idx !== -1) {\n      name = modulePath.slice(idx + 1);\n      resolvedModuleData = config[modulePath.slice(0, idx)];\n    }\n    if (!resolvedModuleData) {\n      throw new Error(\n        'Could not find the module \"' +\n          modulePath +\n          '\" in the React Client Manifest. ' +\n          'This is probably a bug in the React Server Components bundler.',\n      );\n    }\n  }\n  if (resolvedModuleData.async === true && clientReference.$$async === true) {\n    throw new Error(\n      'The module \"' +\n        modulePath +\n        '\" is marked as an async ESM module but was loaded as a CJS proxy. ' +\n        'This is probably a bug in the React Server Components bundler.',\n    );\n  }\n  if (resolvedModuleData.async === true || clientReference.$$async === true) {\n    return [resolvedModuleData.id, resolvedModuleData.chunks, name, 1];\n  } else {","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/facebook/react/blob/eafeac097ba51e1eab809c07102126bd5f8e5425/packages/react-server-dom-webpack/src/server/ReactFlightServerConfigWebpackBundler.js#L48-L84","documentation":"While serializing the RSC payload, the server runtime maps every client reference to [id, chunks, name] using the webpack client manifest configured for the server build (resolveClientReference in ReactFlightServerConfigWebpackBundler.js). Neither the 'modulePath#name' entry (after stripping the '#name' suffix) nor the bare module exists in that manifest, so React cannot tell the browser how to load the component and reports an RSC bundler bug.","triggerScenarios":"The server bundle runs with a missing or stale client manifest (ReactServerDOMWebpack plugin clientManifest option); a client component was added, renamed, or moved after the manifest was generated; module ids differ between the build that produced the manifest and the server build (different hashing/aliases); the client file is excluded from the client compilation.","commonSituations":"Custom webpack/turbopack RSC setups where the server config is missing the client manifest wiring; monorepos whose server and client build configs drift; partial or incremental rebuilds; passing the wrong manifest JSON in render options.","solutions":["Regenerate the client manifest and build the server with it in the same build run","Confirm the client component participates in the client compilation and its emitted module id matches the manifest key format","Align react-server-dom-webpack and RSC plugin versions between server and client webpack configs","In custom integrations, pass the exact manifest emitted alongside the client bundle (clientManifest option)"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Pre-render sanity check for custom integrations:\nfunction clientRefResolvable(clientManifest, modulePath) {\n  if (clientManifest[modulePath]) return true;\n  const idx = modulePath.lastIndexOf('#');\n  return idx !== -1 && Boolean(clientManifest[modulePath.slice(0, idx)]);\n}\n// Fail the build/deploy if any referenced client module is missing.","typeGuard":null,"tryCatchPattern":"let result;\nconst {pipe, abort} = renderToPipeableStream(<App/>, {\n  onError(err) {\n    if (String(err.message).includes('React Client Manifest')) {\n      // Manifest/build mismatch — log loudly and return a 500; retrying render will not help.\n      res.statusCode = 500;\n    }\n  },\n});","preventionTips":["Generate the client manifest and build the server in the same build run","Keep server and client webpack configs in sync (same plugin version, same module id scheme)","Rebuild fully after adding, renaming, or moving client components"],"tags":["react-server-components","bundler-manifest","webpack","client-manifest","stale-build"],"backgroundTag":"rsc-manifest-mismatch","analyzedSha":"eafeac097ba51e1eab809c07102126bd5f8e5425","analyzedAt":"2026-08-21T22:01:08.818Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}