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
- Run `bun install-toolchain.ts` once to populate the toolchains directory before building with --all.
- If you only need your native platform, drop the --all flag and the toolchains are not required.
- 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
- Run `bun install-toolchain.ts` before any --all build.
- Prefer --lambda or --cloudrun for single-target builds that don't need toolchains.
- Add the toolchain install as a prerequisite CI step.
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
- Toolchain for ${toolchain} not found. Run "node install-tool
- Unsupported architecture on Windows: ${process.arch}
- Unsupported architecture on macOS: ${process.arch}
- Unsupported architecture on Linux: ${process.arch}
- Unsupported OS: ${process.platform}, architecture: ${process
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/eb1347a599d07e8d.
Report an issue: GitHub.