Synthetic Industry

Troubleshooting guide · updated 2026-10-10

Pull request stuck on Expected or Pending? Check whether the required workflow ran

Diagnose a merge blocked by a missing required check without removing protection or confusing a skipped workflow with a skipped job.

Start with the check name and revision

This is for a repository owner or engineering lead whose pull request cannot merge even though another run is green. Copy the exact expected check name, the current commit identifier and the reporting app shown in the pull request. Look for the corresponding run. Expected or Pending with no run is not the same fault as a test that started and failed.

  • Compare the required name with the actual job or status name, including renamed jobs.
  • Do not use a passing run from an earlier commit as the acceptance result.

Trace why the workflow was absent

Inspect its event, branch filters, path filters and any skip instruction in the commit message. GitHub documents that skipping an entire workflow this way can leave its required check Pending. In contrast, a job omitted by an if condition reports Success. For a check that genuinely must run on every relevant pull request, propose a reporting design that covers those requests rather than deleting the protection.

  • Try both an application-code change and a docs-only change on safe test branches.
  • Check whether the requirement names a particular GitHub App, not just a familiar label.

A final aggregator must preserve failures

A downstream job can be skipped when a dependency fails. GitHub recommends always() with needs when that downstream check is required. That does not mean always returning a pass: the aggregator must inspect dependency outcomes and report failure when a required test failed. A successful skipped job is not evidence that tests executed.

  • Use a deliberately failing test branch to prove the required result still blocks merging.
  • Use the merge-queue guide if the missing result belongs to a merge group rather than a pull request.

Agree a bounded repair

Acceptance should show the required check appears for the agreed events, passes after real successful checks and fails after a deliberately failing required dependency. Preserve the repository's intended protection. Start an enquiry with public or redacted check names, event and symptom; private workflow access, permission changes and price are agreed separately. This is not authority to bypass rules or merge an unreviewed change.

Sources and limits

  • GitHub: troubleshooting required status checks Checked 2026-10-10.
    • Workflows skipped by path filters, branch filters or commit messages can leave required checks Pending.
    • A job skipped by a conditional reports Success, which is different from an absent workflow run.
    • Required results must correspond to the revision GitHub evaluates; older passing revisions are insufficient.