github-actions Errors
20 error patterns
GitHub Actions step failed with non-zero exit code
Error.*Process completed with exit code [1-9]|exit code.*non-zero
- •Check the failing step's logs for the actual error message above the exit code
- •Add 'continue-on-error: true' temporarily to isolate which step fails
CI pipeline job timeout
The job.*exceeded.*maximum.*time|timeout.*exceeded.*minutes
- •Increase timeout-minutes on the job or specific step
- •Add caching for dependencies (actions/cache) to speed up installs
GitHub Actions artifact not found
Artifact.*not found|download-artifact.*failed|No artifacts found
- •Ensure upload-artifact and download-artifact use matching artifact names
- •Check that the upload step ran successfully in a previous job
CI permission denied error
Permission.*denied|EACCES|Resource not accessible by integration
- •Add permissions block to workflow: contents: write, packages: write, etc.
- •For fork PRs, use pull_request_target event with caution for write access
GitHub Actions secret not available
secret.*not available|undefined.*SECRET|env.*secret.*empty
- •Secrets aren't available in fork PRs — use pull_request_target or environment protection
- •Check secret name matches exactly (case-sensitive) in Settings > Secrets
CI cache miss — dependencies not cached
Cache not found|cache.*miss|no cache.*hit
- •Verify cache key includes lock file hash: hashFiles('**/package-lock.json')
- •Check that the cache path matches where your package manager stores dependencies
Docker image pull failure in CI
Docker.*pull.*error|unauthorized.*registry|manifest.*not found
- •Authenticate to container registry before pull: docker login
- •Check image tag exists — may have been deleted or never pushed
CI runner out of disk space
No space left on device|disk.*full|ENOSPC
- •Free space with: sudo rm -rf /usr/local/lib/android /usr/share/dotnet
- •Use actions/setup-* with smaller tool versions
GitHub API rate limit hit in CI
rate limit|API rate limit exceeded|403.*rate.*limiting
- •Use GITHUB_TOKEN instead of PAT for higher rate limits (1000/hr vs 5000/hr)
- •Add retry logic with exponential backoff for API calls
GitHub Actions workflow not triggered
workflow.*not triggered|on:.*event.*not firing|workflow.*skipped
- •Check event trigger type and branch filter match (on: push, branches: [main])
- •Workflow files must be on the default branch to be recognized
GitHub Actions matrix strategy failure
matrix.*strategy.*error|matrix.*combination.*failed
- •Check matrix values are valid YAML arrays and combinations are correct
- •Use fail-fast: false to continue other matrix jobs when one fails
CI workflow cancelled by concurrency group
concurrency.*cancelled|superseded.*workflow|cancelled.*newer
- •This is expected with concurrency + cancel-in-progress: true
- •Remove cancel-in-progress if you need all runs to complete
Self-hosted runner not available
self-hosted.*runner.*offline|no matching runner|runner.*not available
- •Check runner is online in Settings > Actions > Runners
- •Verify runner labels match the runs-on value in workflow
Deployment step failed in CI
deployment.*failed|deploy.*error|rollback.*triggered
- •Check deployment credentials/tokens are valid and not expired
- •Verify the target environment is reachable from the CI runner
GitHub Actions YAML syntax error
YAML.*syntax.*error|workflow.*invalid|mapping values.*not allowed
- •Validate YAML with actionlint or yamllint before pushing
- •Check indentation — YAML uses spaces only, no tabs
GitHub Action reference not found
action.*version.*not found|Unable to resolve action|uses.*not found
- •Pin to a specific version/SHA: uses: actions/checkout@v4
- •Check the action repository exists and the tag/branch is published
npm ci fails due to lockfile mismatch
npm ci.*error|lockfile.*not compatible|package-lock.*out of date
- •Regenerate lockfile: delete package-lock.json, run npm install, commit
- •Ensure node version in CI matches local (use .nvmrc or engines field)
CI service container unhealthy
Service container.*error|services.*health.*failed|container.*not healthy
- •Add health-check options with retries and interval to the service definition
- •Ensure the service image tag exists and is compatible with runner architecture
GitHub Actions OIDC token request failure
OIDC.*token.*error|id-token.*permission|federated.*credential
- •Add permissions: id-token: write to the job or workflow
- •Configure the cloud provider's federated identity to trust the GitHub OIDC issuer
Composite action definition error
composite action.*error|action\.yml.*invalid|input.*not provided
- •Ensure action.yml has required fields: name, description, runs.using: composite
- •All inputs referenced in steps must be declared in inputs section