{"record":{"id":"e8cdd896ec6265a5","repo":"remotion-dev/remotion","slug":"the-config-format-has-changed-change-config-prev","errorCode":null,"errorMessage":"The config format has changed. Change `Config.Preview.*()` calls to `Config.*()` in your config file.","messagePattern":"The config format has changed\\. Change `Config\\.Preview\\.\\*\\(\\)` calls to `Config\\.\\*\\(\\)` in your config file\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/cli/src/config/index.ts","lineNumber":750,"sourceCode":"\t\t);\n\t},\n\tget Rendering() {\n\t\tthrow new Error(\n\t\t\t'The config format has changed. Change `Config.Rendering.*()` calls to `Config.*()` in your config file.',\n\t\t);\n\t},\n\tget Output() {\n\t\tthrow new Error(\n\t\t\t'The config format has changed. Change `Config.Output.*()` calls to `Config.*()` in your config file.',\n\t\t);\n\t},\n\tget Log() {\n\t\tthrow new Error(\n\t\t\t'The config format has changed. Change `Config.Log.*()` calls to `Config.*()` in your config file.',\n\t\t);\n\t},\n\tget Preview() {\n\t\tthrow new Error(\n\t\t\t'The config format has changed. Change `Config.Preview.*()` calls to `Config.*()` in your config file.',\n\t\t);\n\t},\n\tget Puppeteer() {\n\t\tthrow new Error(\n\t\t\t'The config format has changed. Change `Config.Puppeteer.*()` calls to `Config.*()` in your config file.',\n\t\t);\n\t},\n\tsetMaxTimelineTracks: StudioServerInternals.setMaxTimelineTracks,\n\tsetKeyboardShortcutsEnabled: keyboardShortcutsOption.setConfig,\n\tsetInteractivityEnabled: interactivityOption.setConfig,\n\tsetAllowHtmlInCanvasEnabled,\n\tsetRspack: rspackOption.setConfig,\n\tsetExperimentalRspackEnabled: rspackOption.setConfig,\n\tsetNumberOfSharedAudioTags: numberOfSharedAudioTagsOption.setConfig,\n\tsetExperimentalKeepAudioContextAlive:\n\t\texperimentalKeepAudioContextAliveOption.setConfig,\n\tsetWebpackPollingInMilliseconds: webpackPollOption.setConfig,","sourceCodeStart":732,"sourceCodeEnd":768,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/cli/src/config/index.ts#L732-L768","documentation":"`Config.Preview` was the namespace for Studio/preview-server options in the old config layout. The flat `Config` getter throws on access so any remaining `Config.Preview.*` call surfaces a clear migration message instead of silently doing nothing.","triggerScenarios":"A config file calling `Config.Preview.setMaxTimelineTracks(...)` (or any `Config.Preview.*`) under Remotion 4.x+/5.x.","commonSituations":"Post-upgrade config that still references the Studio namespace; onboarding template cloned from an old repo; mismatched docs vs installed version.","solutions":["Move the call to the flat surface, e.g. `Config.setMaxTimelineTracks(...)`.","Search the config file for all namespaced calls (`Bundling|Rendering|Output|Log|Preview|Puppeteer`) and migrate them together."],"exampleFix":"// before\nConfig.Preview.setMaxTimelineTracks(20);\n// after\nConfig.setMaxTimelineTracks(20);","handlingStrategy":"validation","validationCode":"const src = readFileSync('remotion.config.ts', 'utf8');\nif (/Config\\.Preview\\./.test(src)) {\n  throw new Error('Remove Config.Preview.* calls; use flat Config.* setters.');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Search the config for all six removed namespaces in one grep on every upgrade.","Keep studio-related setters together so they are easy to migrate as a group."],"tags":["config","migration","breaking-change","deprecation","studio"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}