{"record":{"id":"f40c083b8897dc1c","repo":"vercel/next.js","slug":"experimental-oldexperimentalkey-has-been-move","errorCode":null,"errorMessage":"`experimental.${oldExperimentalKey}` has been moved to `${newKey}`. Please update your ${configFileName} file accordingly.","messagePattern":"`experimental\\.(.+?)` has been moved to `(.+?)`\\. Please update your (.+?) file accordingly\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/next/src/server/config.ts","lineNumber":294,"sourceCode":"    warnOptionHasBeenDeprecated(\n      userConfig,\n      'experimental.browserDebugInfoInTerminal',\n      `\\`experimental.browserDebugInfoInTerminal\\` has been moved to \\`logging.browserToTerminal\\`. Please update your ${configFileName} file accordingly.`,\n      silent\n    )\n  }\n}\n\nexport function warnOptionHasBeenMovedOutOfExperimental(\n  config: NextConfig,\n  oldExperimentalKey: string,\n  newKey: string,\n  configFileName: string,\n  silent: boolean\n) {\n  if (config.experimental && oldExperimentalKey in config.experimental) {\n    if (!silent) {\n      Log.warn(\n        `\\`experimental.${oldExperimentalKey}\\` has been moved to \\`${newKey}\\`. ` +\n          `Please update your ${configFileName} file accordingly.`\n      )\n    }\n\n    let current = config\n    const newKeys = newKey.split('.')\n    while (newKeys.length > 1) {\n      const key = newKeys.shift()!\n      ;(current as any)[key] = (current as any)[key] || {}\n      current = (current as any)[key]\n    }\n    ;(current as any)[newKeys.shift()!] = (config.experimental as any)[\n      oldExperimentalKey\n    ]\n  }\n\n  return config","sourceCodeStart":276,"sourceCodeEnd":312,"githubUrl":"https://github.com/vercel/next.js/blob/258b1c1bc05f7099816b88f70b7b3422b24a4b8d/packages/next/src/server/config.ts#L276-L312","documentation":"Deprecation warning from warnOptionHasBeenMovedOutOfExperimental during config load: an option still set under config.experimental.<oldExperimentalKey> has been promoted to a top-level key. The warning names both the old experimental path and the new key (with the config file name) so the entry can be moved; the old value is not honored.","triggerScenarios":"Thrown at packages/next/src/server/config.ts:261 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Rename the experimental option in your next.config file to the new top-level key as indicated."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"258b1c1bc05f7099816b88f70b7b3422b24a4b8d","analyzedAt":"2026-08-19T02:10:13.922Z","contentChangedAt":"2026-08-19T02:10:13.922Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}