Process completed with exit code 127 CI/CD Origin: Build & delivery Last updated 25 Oct 2026

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.

Exact message you may see 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 PATH for later steps
  • Using a Windows command on a Linux runner (or the reverse)

⚡ Quick fix

  1. Install the tool (actions/setup-*, apt-get install, pip install)
  2. chmod +x script.sh and commit the executable bit
  3. Add the path with echo "$HOME/.local/bin" >> "$GITHUB_PATH"

Detailed fix by platform

GitHub Actions

  1. git update-index --chmod=+x scripts/deploy.sh then commit
  2. Check what exists: `run: which node python3 jq
  3. true`

Linux

  1. `command -v mytool
  2. echo "mytool is not installed"`

Code examples

Install before use

yaml
- uses: actions/setup-node@v4
  with: { node-version: 20 }
- run: sudo apt-get update && sudo apt-get install -y jq
- run: jq --version

How to diagnose

  1. Command — Which command is "not found"?
  2. Runner — ubuntu, windows or macos?
  3. 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:

Where this error sits

Origin: Build & delivery. Errors that are often confused with or caused by this one (click to open):

API rate limit exceeded — GitHub Actions: HttpError: API rate limit exceeded for installation ID 123456 / secondary rate limit (CI/CD)API rate limit exceed…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 (CI/CD)Cache not found / Una…command not found — bash: command not found (Linux)command not foundCredentials could not be loaded — GitHub Actions: Error: Credentials could not be loaded, please check your action inputs: Could not load credentials from any providers (CI/CD)Credentials could not…ERROR: Job failed: exit code 1 — GitLab CI: ERROR: Job failed: exit code 1 (CI/CD)ERROR: Job failed: ex…Process completed with exit code 1 — GitHub Actions: Error: Process completed with exit code 1. (CI/CD)Process completed wit…Process completed with exit code 137 — GitHub Actions: Error: Process completed with exit code 137 (Killed — out of memory) (CI/CD)Process completed wit…Unable to download artifact — GitHub Actions: Error: Unable to download artifact(s): Artifact not found for name: build (CI/CD)Unable to download ar…Process c…

Explore the map of this error Full error map →

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