remotion-dev/remotion · error · Error
The config format has changed. Change `Config.Output.*()` ca
Error message
The config format has changed. Change `Config.Output.*()` calls to `Config.*()` in your config file.
What it means
`Config.Output` was the old namespace for output-related setters (e.g. `Config.Output.setCodec`). The flat `Config` object replaces it with a throwing getter so unmigrated config files stop at first access rather than silently being ignored.
Source
Thrown at packages/cli/src/config/index.ts:740
Log.warn(
{indent: false, logLevel: 'info'},
'Config.setAllowHtmlInCanvasEnabled() is now a no-op because HTML-in-canvas is enabled by default when supported. You can remove this option from your config file.',
);
};
export const Config: FlatConfig = {
get Bundling() {
throw new Error(
'The config format has changed. Change `Config.Bundling.*()` calls to `Config.*()` in your config file.',
);
},
get Rendering() {
throw new Error(
'The config format has changed. Change `Config.Rendering.*()` calls to `Config.*()` in your config file.',
);
},
get Output() {
throw new Error(
'The config format has changed. Change `Config.Output.*()` calls to `Config.*()` in your config file.',
);
},
get Log() {
throw new Error(
'The config format has changed. Change `Config.Log.*()` calls to `Config.*()` in your config file.',
);
},
get Preview() {
throw new Error(
'The config format has changed. Change `Config.Preview.*()` calls to `Config.*()` in your config file.',
);
},
get Puppeteer() {
throw new Error(
'The config format has changed. Change `Config.Puppeteer.*()` calls to `Config.*()` in your config file.',
);
},View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Flatten the call: `Config.setCodec(...)` directly on `Config`.
- Audit the whole config file for other removed namespaces (`Rendering`, `Bundling`, `Log`, `Preview`, `Puppeteer`) and migrate them in the same pass.
Example fix
// before
Config.Output.setCodec('h264');
// after
Config.setCodec('h264'); Defensive patterns
Strategy: validation
Validate before calling
const src = readFileSync('remotion.config.ts', 'utf8');
if (/Config\.Output\./.test(src)) {
throw new Error('Remove Config.Output.* calls; use flat Config.* setters.');
} Prevention
- Treat any `Config.<Capitalized>.` access as a code smell after upgrading.
- Add an ESLint custom rule banning the removed namespaces.
When it happens
Trigger: Any config file calling `Config.Output.setCodec(...)` or another `Config.Output.*` method, loaded under Remotion 4.x+/5.x.
Common situations: Stale `remotion.config.ts` after a major upgrade; team shared snippet that pre-dates the flat config; documentation/tutorial written against v3.
Related errors
- The config format has changed. Change `Config.Bundling.*()`
- The config format has changed. Change `Config.Rendering.*()`
- The config format has changed. Change `Config.Log.*()` calls
- The config format has changed. Change `Config.Preview.*()` c
- The config format has changed. Change `Config.Puppeteer.*()`
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/878809bb082747a3.
Report an issue: GitHub.