Blacksmith Nested Virtualization: x64 Linux Only
If a KVM-dependent or emulator job fails on a Blacksmith ARM runner, the platform limitation is the likely cause: nested virtualization is x64 Linux only.
According to Blacksmith's runner docs, nested virtualization is supported on x64 Linux runners, enabling KVM-dependent jobs, emulator-based test environments, and other VM-backed CI tasks, but it is not supported on ARM Linux. Choosing the wrong platform for such a workload will make it fail.
What needs nested virtualization
- KVM-dependent jobs, per the docs.
- Emulator-based test environments, such as Android emulators.
- Other VM-backed CI tasks that expect hardware virtualization inside the runner.
The platform rule
Per the docs, target an x64 Linux Blacksmith runner for these workloads. ARM Linux does not support nested virtualization, and Windows runners have their own separate constraint against Docker Linux containers.
When the failure is transient instead
Not every VM-backed job failure is a platform limit; some are transient. Latchkey's self-healing retries transient failures automatically, so you can distinguish a genuine platform constraint from a flaky one that just needed a retry.
If you want failures to recover on their own
Blacksmith is a strong choice when raw runner speed and per-core performance are your priority. If your recurring pain is instead flaky, transient failures that force manual re-runs, Latchkey is worth a look: it runs your GitHub Actions on managed, drop-in runners and adds self-healing CI, so out-of-memory kills, disk-full errors, and registry timeouts are detected and retried automatically. You can pilot it on a single workflow with a one-line runs-on change and compare against your real builds.