A pull request can pass its own checks and still fail in GitHub’s merge queue because the queue tests a different revision: the target branch combined with that pull request and any earlier queued changes. The green result on the original pull-request commit does not prove that this combined version will pass.
Why can a green pull request fail in the merge queue?
A green check applies to the specific commit that was tested. When a pull request enters a merge queue, GitHub creates a temporary merge group using the latest target branch and the changes from pull requests ahead of it, along with the current pull request. It requests checks on that combined state and merges it only after required checks pass. GitHub’s merge queue documentation describes this process.
As an Amazon Associate I earn from qualifying purchases.
That composition can expose a test failure or conflict that was absent from the pull request’s earlier, standalone revision. Queue order matters: a later pull request can be tested on a group containing earlier queued changes. If an earlier pull request is removed, GitHub can rebuild the later group without it. Moving an entry to the top can also cause in-progress groups to be rebuilt.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
This is not evidence of a particular failure rate. It is the consequence of validating a different commit composition.
#1 Best Overall
Why is GitHub waiting for status checks to be reported?
The queue needs required checks to report a result for the merge group. A workflow that listens only for pull_request does not automatically run for the separate merge_group event. If the workflow never runs for the group, GitHub may wait for a required result that will never arrive.
GitHub Actions
For workflows that produce required checks, add merge_group alongside the relevant pull-request trigger:
Rank #2
on:
pull_request:
merge_group:
GitHub’s event documentation explains that merge_group is distinct from pull_request and push. The event is relevant to checks required by the target branch’s protection rules.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Third-party CI
Configure an external CI provider to react to pushes to temporary queue branches whose names begin gh-readonly-queue/{base_branch}. Do not match only the pull request’s commit SHA: GitHub says the temporary queue branch has a different SHA from the pull-request SHA. See GitHub’s guidance for CI providers and merge queues.
How to diagnose a queue failure
Work through the queue-specific result rather than relying on the pull request’s earlier green checks.
- Inspect the required check on the queued group. Determine whether it is missing, pending, or failed, and confirm that it is the check required by the target branch’s protection or ruleset. The queue waits for required checks to report.
- Verify the trigger. In GitHub Actions, check that the workflow includes
merge_group. For external CI, confirm that queue temporary branches are included in its branch matching rules. - Check filters and conditions. A workflow skipped by path or branch filtering can leave an associated required check pending. Also check job-level conditions. Required check names should be unambiguous across workflows; if branch protection specifies an app as the expected source, make sure the result comes from that source. See GitHub’s required status checks guidance.
- Confirm the revision being checked. Required checks must succeed on the latest commit SHA. A passing result on an earlier revision does not satisfy a requirement for a different merge-group commit.
- Inspect the combined changes and conflicts. Compare the queue’s merge-group revision with the pull request’s standalone revision and consider newer target-branch changes and earlier queue entries. Those differences can produce a failure or conflict that did not occur in the original pull-request checks.
- Read the pull request timeline. GitHub identifies the reason when it removes a pull request from the queue. Check whether a required result timed out, a check failed, a user requested removal, or a branch-protection failure could not be resolved automatically. Repository queue settings may define a timeout for waiting on checks.
What changes when a pull request enters the queue?
GitHub describes the queue as first in, first out. When an entry is ready to be tested, its merge group includes the current target branch and changes from entries ahead of it. A later entry can therefore be checked against a combination of changes rather than against the target branch alone. If an earlier entry fails and leaves the queue, GitHub can recreate later groups without that change.
Contributors can select Merge when ready in GitHub when the repository requires a queue. The gh pr merge command can add a pull request to the queue when required checks pass and enable auto-merge if they have not passed yet. GitHub’s pull request merge instructions state that queue removal is done on GitHub.com.
Which queue settings affect checks and throughput?
Administrators can require a merge queue through branch protection. GitHub documents settings for merge method (merge, rebase, or squash), maximum concurrent merge-group builds, whether groups can form from non-failing pull requests alone, a status-check timeout, and minimum and maximum merge limits with a wait period. The documented ranges for maximum concurrent builds and merge limits are 1 to 100; these are configuration limits, not performance guarantees. See GitHub’s repository rules REST API documentation for the applicable rule settings.
Best Value
The API also documents two grouping strategies:
ALLGREEN: each pull request’s merge commit created by the queue must pass required checks.HEADGREEN: only the head commit containing the combined changes must pass.
Verify which strategy applies to the repository’s ruleset before diagnosing which commits are expected to be green. The settings involve practical tradeoffs: requiring checks for each queued pull request versus only the combined group head; allowing more concurrent CI builds versus managing merge throughput; setting a longer timeout for slow checks versus waiting longer for a missing result; and choosing group limits in light of CI or deployment costs. The documented controls do not establish one best configuration for every repository.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




