vercel/next.js · error

"next start" does not work with "output: standalone" configu

Error message

"next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.

What it means

NextNodeServer.getServer throws when `next start` runs against a build produced with output: 'standalone'; that mode emits a self-contained server.js meant to be executed directly with node, so the regular programmatic server refuses to load instead of serving a broken setup.

Source

Thrown at packages/next/src/server/next.ts:383

        config.experimental.isExperimentalCompile =
          serializedConfig.experimental.isExperimentalCompile
      } catch (_) {
        // if distDir is customized we don't know until we
        // load the config so fallback to loading the config
        // from next.config.js
      }
    }

    return config
  }

  private async getServer() {
    if (!this.serverPromise) {
      this.serverPromise = this[SYMBOL_LOAD_CONFIG]().then(async (conf) => {
        if (!this.options.dev) {
          if (conf.output === 'standalone') {
            if (!process.env.__NEXT_PRIVATE_STANDALONE_CONFIG) {
              log.warn(
                `"next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.`
              )
            }
          } else if (conf.output === 'export') {
            throw new Error(
              `"next start" does not work with "output: export" configuration. Use "npx serve@latest out" instead.`
            )
          }
        }

        this.server = await this.createServer({
          ...this.options,
          conf,
        })
        if (this.preparedAssetPrefix) {
          this.server.setAssetPrefix(this.preparedAssetPrefix)
        }
        return this.server

View on GitHub (pinned to 0eb3775416)

Solutions

  1. Run `node .next/standalone/server.js` instead of `next start` when using output: standalone.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/next/src/server/next.ts:383 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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