remotion-dev/remotion · error · Error

Run "bun install-toolchain.ts" if you want to build all plat

Error message

Run "bun install-toolchain.ts" if you want to build all platforms

What it means

Thrown at the top of packages/compositor/build.ts when the --all flag is passed (build all target platforms) but the local 'toolchains' directory does not exist. Cross-compiling all platforms requires the cross toolchains installed by install-toolchain.ts, so the script aborts rather than failing later per-target.

Source

Thrown at packages/compositor/build.ts:152

	'x86_64-pc-windows-gnu': {
		from: `target/x86_64-pc-windows-gnu/${mode}/remotion.exe`,
		to: '../compositor-win32-x64-msvc/remotion.exe',
		dir: '../compositor-win32-x64-msvc',
	},
};

if (!hasCargo()) {
	console.log('Environment has no cargo. Skipping Rust builds.');
	process.exit(0);
}

const nativeArch = getTarget();

const all = process.argv.includes('--all');
const cloudrun = process.argv.includes('--cloudrun');
const lambda = process.argv.includes('--lambda');
if (!existsSync('toolchains') && all) {
	throw new Error(
		'Run "bun install-toolchain.ts" if you want to build all platforms',
	);
}

for (const toolchain of toolchains) {
	if (!existsSync(path.join('toolchains', toolchain)) && all) {
		throw new Error(
			`Toolchain for ${toolchain} not found. Run "node install-toolchain.mjs" if you want to build all platforms`,
		);
	}
}

const stdout = execSync('cargo metadata --format-version=1');
const {packages} = JSON.parse(stdout as unknown as string);

const rustFfmpegSys = packages.find((p) => p.name === 'ffmpeg-sys-next');

if (!rustFfmpegSys) {

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Run `bun install-toolchain.ts` once to populate the toolchains directory before building with --all.
  2. If you only need your native platform, drop the --all flag and the toolchains are not required.
  3. Ensure your CI pipeline runs the toolchain installer step before the all-platforms build.

Example fix

// before
bun packages/compositor/build.ts --all

// after
bun packages/compositor/install-toolchain.ts
bun packages/compositor/build.ts --all
Defensive patterns

Strategy: validation

Validate before calling

if (process.argv.includes('--all') && !existsSync('toolchains')) {
  throw new Error('Run bun install-toolchain.ts before building with --all');
}

Prevention

When it happens

Trigger: Running the compositor build with `--all` before running the toolchain installer, or after the toolchains directory was cleaned/deleted.

Common situations: A fresh checkout where `bun install-toolchain.ts` was never run; CI that runs the all-platforms build without the prerequisite setup step; a `clean` that removed the toolchains directory.

Related errors


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