act "OCI runtime exec format error" running Actions locally
The kernel tried to run a binary compiled for a different architecture (an amd64 binary in an arm64 container, or vice versa) and refused it. On Apple Silicon this usually means the image and requested architecture disagree.
What this error means
act or a step fails with "standard_init_linux.go:...: exec user process caused: exec format error" or "OCI runtime create failed: ... exec format error".
OCI runtime create failed: runc create failed: unable to start container process:
exec: "/usr/bin/node": exec format error: unknownCommon causes
Binary architecture does not match the container
A tool or downloaded binary is amd64 while the container runs arm64 (or the reverse), so the loader cannot execute it.
Emulation is missing or the arch is unset
Running an amd64 image on arm64 without QEMU binfmt support, or without --container-architecture, hits this at exec time.
How to fix it
Request a consistent architecture
On Apple Silicon, force amd64 so the image and its binaries agree, matching GitHub-hosted runners.
act --container-architecture linux/amd64 -j buildEnable cross-arch emulation
Install QEMU binfmt handlers so the host can run foreign-arch binaries under emulation.
docker run --privileged --rm tonistiigi/binfmt --install allHow to prevent it
- Keep image architecture and
--container-architecturealigned. - Install QEMU binfmt when running cross-arch images locally.
- Download arch-appropriate binaries inside workflow steps.