{"record":{"id":"bbbf1635ef8f4d63","repo":"vercel/next.js","slug":"next-start-does-not-work-with-output-standalon","errorCode":null,"errorMessage":"\"next start\" does not work with \"output: standalone\" configuration. Use \"node .next/standalone/server.js\" instead.","messagePattern":"\"next start\" does not work with \"output: standalone\" configuration\\. Use \"node \\.next/standalone/server\\.js\" instead\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/next/src/server/next.ts","lineNumber":383,"sourceCode":"        config.experimental.isExperimentalCompile =\n          serializedConfig.experimental.isExperimentalCompile\n      } catch (_) {\n        // if distDir is customized we don't know until we\n        // load the config so fallback to loading the config\n        // from next.config.js\n      }\n    }\n\n    return config\n  }\n\n  private async getServer() {\n    if (!this.serverPromise) {\n      this.serverPromise = this[SYMBOL_LOAD_CONFIG]().then(async (conf) => {\n        if (!this.options.dev) {\n          if (conf.output === 'standalone') {\n            if (!process.env.__NEXT_PRIVATE_STANDALONE_CONFIG) {\n              log.warn(\n                `\"next start\" does not work with \"output: standalone\" configuration. Use \"node .next/standalone/server.js\" instead.`\n              )\n            }\n          } else if (conf.output === 'export') {\n            throw new Error(\n              `\"next start\" does not work with \"output: export\" configuration. Use \"npx serve@latest out\" instead.`\n            )\n          }\n        }\n\n        this.server = await this.createServer({\n          ...this.options,\n          conf,\n        })\n        if (this.preparedAssetPrefix) {\n          this.server.setAssetPrefix(this.preparedAssetPrefix)\n        }\n        return this.server","sourceCodeStart":365,"sourceCodeEnd":401,"githubUrl":"https://github.com/vercel/next.js/blob/0eb377541648e63402a47b38fee00a8d0ce8f8f1/packages/next/src/server/next.ts#L365-L401","documentation":"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.","triggerScenarios":"Thrown at packages/next/src/server/next.ts:383 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run `node .next/standalone/server.js` instead of `next start` when using output: standalone."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0eb377541648e63402a47b38fee00a8d0ce8f8f1","analyzedAt":"2026-08-19T02:10:13.922Z","contentChangedAt":"2026-08-19T02:10:13.922Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}