{"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":772,"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\taddElementLibrary,\n\tsetMaxTimelineTracks: StudioServerInternals.setMaxTimelineTracks,\n\tsetKeyboardShortcutsEnabled: keyboardShortcutsOption.setConfig,\n\tsetKeyboardShortcuts,\n\tsetInteractivityEnabled: interactivityOption.setConfig,\n\tsetAllowHtmlInCanvasEnabled: allowHtmlInCanvasOption.setConfig,\n\tsetRspack: rspackOption.setConfig,\n\tsetExperimentalRspackEnabled: rspackOption.setConfig,\n\tsetNumberOfSharedAudioTags: numberOfSharedAudioTagsOption.setConfig,\n\tsetExperimentalKeepAudioContextAlive:","sourceCodeStart":754,"sourceCodeEnd":790,"githubUrl":"https://github.com/remotion-dev/remotion/blob/b2f4e34732f3c6c222ea029413e22dc402218cd7/packages/cli/src/config/index.ts#L754-L790","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":"b2f4e34732f3c6c222ea029413e22dc402218cd7","analyzedAt":"2026-08-12T17:18:50.444Z","contentChangedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}