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
- Re-run `bun install-toolchain.ts` to restore the missing toolchain subdirectory.
- Verify the toolchains directory contains an entry for every target in packages/compositor/toolchains.ts.
- 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
- Re-run `bun install-toolchain.ts` if any toolchain subdirectory is missing.
- Verify every entry in toolchains.ts is present before an --all build.
- Use --lambda/--cloudrun for narrower builds when you don't need all targets.
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
- Run "bun install-toolchain.ts" if you want to build all plat
- 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/784977c3fef34c1c.
Report an issue: GitHub.