remotion-dev/remotion · error · Error

Toolchain for ${toolchain} not found. Run "node install-tool

Error message

Toolchain for ${toolchain} not found. Run "node install-toolchain.mjs" if you want to build all platforms

What it means

Thrown during the compositor build when --all is set, the toolchains directory exists, but one of the expected per-target toolchain subdirectories is missing. Each cross-compile target needs its own linker (e.g. aarch64-unknown-linux-gnu-gcc), and the build checks each entry from the toolchains list before proceeding.

Source

Thrown at packages/compositor/build.ts:159

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) {
	console.error(
		'Could not find ffmpeg-sys-next when running cargo metadata --format-version=1',
	);
	process.exit(1);
}

const manifest = rustFfmpegSys.manifest_path;

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Re-run `bun install-toolchain.ts` to restore the missing toolchain subdirectory.
  2. Verify the toolchains directory contains an entry for every target in packages/compositor/toolchains.ts.
  3. If you only need specific targets, prefer --lambda or --cloudrun over --all.

Example fix

// before
bun packages/compositor/build.ts --all
# -> Toolchain for aarch64_musl_toolchain not found.

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

Strategy: validation

Validate before calling

for (const t of toolchains) {
  if (process.argv.includes('--all') && !existsSync(path.join('toolchains', t))) {
    throw new Error(`Missing toolchain: ${t}. Re-run install-toolchain.ts`);
  }
}

Prevention

When it happens

Trigger: Running `--all` after a partial or interrupted install-toolchain run that left some toolchain subdirectories absent, or after one was manually deleted.

Common situations: Interrupted toolchain install; selective deletion of a toolchain; mismatch between the toolchains list and what install-toolchain.ts actually downloaded (e.g. after a version bump).

Related errors


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