remotion-dev/remotion · error · Error

Unsupported architecture on Windows: ${process.arch}

Error message

Unsupported architecture on Windows: ${process.arch}

What it means

Thrown by getTarget() in packages/compositor/build.ts when the build is running on Windows (process.platform === 'win32') but process.arch is not 'x64'. The native compositor cross-compiles only for the x86_64-pc-windows-gnu target, so any other Windows architecture is unsupported at build time.

Source

Thrown at packages/compositor/build.ts:50

const targets = [
	'x86_64-pc-windows-gnu',
	'x86_64-unknown-linux-musl',
	'aarch64-unknown-linux-gnu',
	'x86_64-unknown-linux-gnu',
	'aarch64-apple-darwin',
	'x86_64-apple-darwin',
	'aarch64-unknown-linux-musl',
];

export const getTarget = () => {
	switch (process.platform) {
		case 'win32':
			switch (process.arch) {
				case 'x64':
					return 'x86_64-pc-windows-gnu';
				default:
					throw new Error(
						`Unsupported architecture on Windows: ${process.arch}`,
					);
			}

		case 'darwin':
			switch (process.arch) {
				case 'x64':
					return 'x86_64-apple-darwin';
				case 'arm64':
					return 'aarch64-apple-darwin';
				default:
					throw new Error(`Unsupported architecture on macOS: ${process.arch}`);
			}

		case 'linux':
			switch (process.arch) {
				case 'x64':
					if (isMusl()) {

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Build on a Windows x64 host or use the prebuilt compositor binaries distributed with Remotion.
  2. If you must build on Windows ARM, run x64 Node via Rosetta-equivalent emulation or use a cross-compile environment.
  3. For local development prefer the prebuilt binaries instead of building from source.
Defensive patterns

Strategy: validation

Validate before calling

// Before building, assert a supported platform/arch combination.
const supported =
  (process.platform === 'win32' && process.arch === 'x64') ||
  (process.platform === 'darwin' && (process.arch === 'x64' || process.arch === 'arm64')) ||
  (process.platform === 'linux' && (process.arch === 'x64' || process.arch === 'arm64'));
if (!supported) throw new Error(`Unsupported build host: ${process.platform}/${process.arch}`);

Prevention

When it happens

Trigger: Running the compositor build script on Windows on an architecture other than x64, e.g. Windows on ARM (process.arch === 'arm64') or a 32-bit (ia32) Node build.

Common situations: Building the native binary on a Windows-on-ARM device; running a 32-bit Node.js on Windows; a CI runner reporting an unexpected arch.

Related errors


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