GitHub Actions: Expected — Waiting for status to be reported (required check never runs on the pull request)
Branch protection requires a status check that no workflow reports for this PR, so the merge button stays blocked.
Expected — Waiting for status to be reportedWaiting for status to be reportedRequired status check is expected but never runsExpected — Waiting for status to be reported required check Meaning
A required check is matched by its exact name. If a workflow uses paths filters, if: conditions that skip the job, a renamed job, or matrix names that differ, the check never reports and shows "Expected". Skipped jobs report "Skipped" (which satisfies the rule) but jobs of a workflow that did not trigger report nothing.
Common causes
- Workflow with
paths/branchesfilters that did not trigger for this PR - Job renamed, so the required name no longer exists
- Matrix job names changed (
test (18)vstest (20)) - Workflow disabled or failing to parse
- Required check from a GitHub App/service that is not installed
⚡ Quick fix
- Make the workflow always run, or add a lightweight "required" job that always passes
- Update the required check names in Settings → Branches
- Fix the YAML error that prevents the workflow from running
Detailed fix by platform
GitHub Actions
- Pattern: a final job
needs: [build, test]withif: always()that fails if any needed job failed, and require only that job
Code examples
One stable required check
jobs:
all-green:
if: always()
needs: [build, test]
runs-on: ubuntu-latest
steps:
- run: |
[[ "${{ contains(needs.*.result, 'failure') }}" == "false" ]]How to diagnose
- Name — Exact required check name?
- Trigger — Did the workflow run for this PR?
- Filters — paths or if-conditions skipping jobs?
🔧 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
- Credentials could not be loaded GitHub Actions: Error: Credentials could not be loaded, please check your action inputs: Could not load credentials from any providers
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
- deprecated version of actions/upload-artifact GitHub Actions: Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v3`
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