vercel/next.js · error

Fast Refresh had to perform a full reload when ${cleanedModu

Error message

Fast Refresh had to perform a full reload when ${cleanedModulePath} changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload

What it means

Dev-server warning in the Turbopack hot reloader's client-full-reload handling: the changed file was outside the Fast Refresh boundary (cleanedModulePath is extracted from the dependency chain), so incremental hot patching is impossible. The warning names the module and logs this message while the browser falls back to a full reload.

Source

Thrown at packages/next/src/server/dev/hot-reloader-turbopack.ts:1566

            case 'client-error': // { errorCount, clientId }
            case 'client-warning': // { warningCount, clientId }
            case 'client-success': // { clientId }
            case 'server-component-reload-page': // { clientId }
            case 'client-reload-page': // { clientId }
            case 'client-removed-page': // { page }
            case 'client-full-reload': // { stackTrace, hadRuntimeError }
              const { hadRuntimeError, dependencyChain } = parsedData
              if (hadRuntimeError) {
                Log.warn(FAST_REFRESH_RUNTIME_RELOAD)
              }
              if (
                Array.isArray(dependencyChain) &&
                typeof dependencyChain[0] === 'string'
              ) {
                const cleanedModulePath = dependencyChain[0]
                  .replace(/^\[project\]/, '.')
                  .replace(/ \[.*\] \(.*\)$/, '')
                Log.warn(
                  `Fast Refresh had to perform a full reload when ${cleanedModulePath} changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload`
                )
              }
              break
            case 'client-added-page':
              // TODO
              break
            case 'browser-logs': {
              await receiveBrowserLogsTurbopack({
                entries: parsedData.entries,
                router: parsedData.router,
                sourceType: parsedData.sourceType,
                project,
                projectPath,
                distDir,
                config:
                  (nextConfig.logging &&
                    nextConfig.logging.browserToTerminal) ||

View on GitHub (pinned to 258b1c1bc0)

Solutions

  1. Move non-component exports to a separate file so edits to that module don't require a full reload.
  2. See https://nextjs.org/docs/messages/fast-refresh-reload for details.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at packages/next/src/server/dev/hot-reloader-turbopack.ts:1494 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of vercel/next.js@258b1c1bc0 (2026-08-19). Data as JSON: /api/errors/dbb7992534cd09a0. Report an issue: GitHub.