GitHub Actions: Error: Process completed with exit code 127 — command not found
The shell could not find the command you tried to run: it is not installed on the runner, not on PATH, or misspelled.
Process completed with exit code 127command not found exit code 127##[error]Process completed with exit code 127bash: line 1: mytool: command not found/bin/bash: ./script.sh: Permission denied Meaning
Exit code 127 means "command not found". Hosted runners include many tools but not everything, and a freshly installed tool may not be on PATH in the same step. Install it with a setup action or package manager, check the exact name and case, and make sure scripts have the executable bit and a valid shebang.
Common causes
- Tool not installed on the runner (a CLI, a language version)
- Typo or wrong case in the command
- Script not executable or missing shebang (
./deploy.sh: command not found) - Tool installed but not added to
PATHfor later steps - Using a Windows command on a Linux runner (or the reverse)
⚡ Quick fix
- Install the tool (
actions/setup-*,apt-get install,pip install) chmod +x script.shand commit the executable bit- Add the path with
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
Detailed fix by platform
GitHub Actions
git update-index --chmod=+x scripts/deploy.shthen commit- Check what exists: `run: which node python3 jq
- true`
Linux
- `command -v mytool
- echo "mytool is not installed"`
Code examples
Install before use
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: sudo apt-get update && sudo apt-get install -y jq
- run: jq --versionHow to diagnose
- Command — Which command is "not found"?
- Runner — ubuntu, windows or macos?
- Path — Added to PATH after install?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- API rate limit exceeded GitHub Actions: HttpError: API rate limit exceeded for installation ID 123456 / secondary rate limit
- Cache not found / Unable to reserve cache GitHub Actions: Cache not found for input keys: npm-Linux-abc123 / Failed to save: Unable to reserve cache with key, another job may be creating this cache
- command not found bash: command not found
Most viewed in CI/CD
- The process '/usr/bin/git' failed with exit code 128 GitHub Actions: Error: The process '/usr/bin/git' failed with exit code 128
- This job is stuck because you don't have any active runners GitLab CI: This job is stuck because you don't have any active runners online or available with any of these tags assigned to them
- Resource not accessible by integration GitHub Actions: Error: Resource not accessible by integration (403)
Other ways to find it
Where this error sits
Origin: Build & delivery. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 25 Oct 2026