Skip to content
Latchkey

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".

act
OCI runtime create failed: runc create failed: unable to start container process:
exec: "/usr/bin/node": exec format error: unknown

Common 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.

Terminal
act --container-architecture linux/amd64 -j build

Enable cross-arch emulation

Install QEMU binfmt handlers so the host can run foreign-arch binaries under emulation.

Terminal
docker run --privileged --rm tonistiigi/binfmt --install all

How to prevent it

  • Keep image architecture and --container-architecture aligned.
  • Install QEMU binfmt when running cross-arch images locally.
  • Download arch-appropriate binaries inside workflow steps.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →