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.
/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.
- uses: aws-actions/configure-aws-credentials@v4
# or install the tool explicitly before useUse a fuller act image
Map to a larger catthehacker image (or self-host a full image) so more tools are present locally.
act -P ubuntu-latest=catthehacker/ubuntu:full-latestHow 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.