remotion-dev/remotion · error · Error

The config format has changed. Change `Config.Bundling.*()`

Error message

The config format has changed. Change `Config.Bundling.*()` calls to `Config.*()` in your config file.

What it means

`Config.Bundling` was a property on the old namespaced Remotion config object (pre-4.0). The current `Config` is flat, so the `Bundling` getter has been replaced with a getter that throws to fail fast on un-migrated config files. Accessing `Config.Bundling` triggers it.

Source

Thrown at packages/cli/src/config/index.ts:730

		 * @deprecated 'The config format has changed. Change `Config.Rendering.*()` calls to `Config.*()` in your config file.'
		 */
		Rendering: void;
		/**
		 * @deprecated 'The config format has changed. Change `Config.Output.*()` calls to `Config.*()` in your config file.'
		 */
		Output: void;
	};

const setAllowHtmlInCanvasEnabled = (_enabled: boolean) => {
	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.',
		);
	},

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Delete the `Config.Bundling.*()` namespace calls; call the same setters directly on `Config` (e.g. `Config.setWebpackOverride(...)`).
  2. Run the upgrade helper / consult the v3→v4 migration guide to map each removed namespaced setter.

Example fix

// before
Config.Bundling.setWebpackOverride((config) => config);
// after
Config.setWebpackOverride((config) => config);
Defensive patterns

Strategy: validation

Validate before calling

// Lint the config file for removed namespaces before running Remotion.
import {readFileSync} from 'node:fs';
const src = readFileSync('remotion.config.ts', 'utf8');
if (/Config\.Bundling\./.test(src)) {
  throw new Error('Remove Config.Bundling.* calls; use flat Config.* setters.');
}

Prevention

When it happens

Trigger: Any config file left over from Remotion ≤3.x calling `Config.Bundling.setOverride(...)` (or any `Config.Bundling.*`). The getter throws on property access, before any method runs.

Common situations: Upgrading a project from Remotion 3.x to 4.x/5.x without migrating `remotion.config.ts`; copying an old tutorial's config; CI building against new Remotion with a stale config committed.

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/7b7ecedfc7067ca9. Report an issue: GitHub.