Skip to content
Latchkey

act runner image differs from GitHub-hosted (missing preinstalled tools)

act runner images are slimmer than GitHub-hosted runner images. A workflow that assumes a preinstalled tool (a language toolchain, a CLI) can fail locally with "command not found" even though it passes on GitHub.

What this error means

A step that works on GitHub fails under act with "command not found" or a missing binary, because the tool is not baked into the act image.

act
/home/runner/work/_temp/abc.sh: line 3: aws: command not found
Error: Process completed with exit code 127.

Common causes

act uses a smaller image than GitHub

The catthehacker images come in sizes; the default medium image omits many tools that the full GitHub-hosted image preinstalls.

The workflow relies on preinstalled software

The job assumes a tool is already present instead of installing it, which only holds on the full hosted image.

How to fix it

Install the tool in the workflow

Add an explicit setup step or install command so the job does not depend on preinstalled software.

.github/workflows/ci.yml
- uses: aws-actions/configure-aws-credentials@v4
# or install the tool explicitly before use

Use a fuller act image

Map to a larger catthehacker image (or self-host a full image) so more tools are present locally.

Terminal
act -P ubuntu-latest=catthehacker/ubuntu:full-latest

How to prevent it

  • Install tools explicitly rather than assuming they are preinstalled.
  • Pick an act image size that matches what your workflow needs.
  • Treat act images as similar to, not identical to, hosted runners.

Related guides

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