# Finding which PRs have been taken out of the Merge Queue due to failed status checks

DevFeed: [Finding which PRs have been taken out of the Merge Queue due to failed status checks](<https://devfeed.tech/articles/finding-which-prs-have-been-taken-out-of-the-merge-queue-due-to-failed-status-checks-53091.md>)

Original publisher: [Read original article](<https://www.jvt.me/posts/2026/08/11/github-merge-queue-prs/>)

Author: Jamie Tanna

Published: 2026-08-11T14:23:30Z

Content type: tutorial

Language: en

Sources: [Jamie Tanna](<https://devfeed.tech/sources/articles-on-jamie-tanna-software-engineer.md>)

Topics: [GitHub](<https://devfeed.tech/topics/github.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [renovate](<https://devfeed.tech/topics/renovate.md>)

Tags: [blogumentation](<https://devfeed.tech/tags/blogumentation.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [error](<https://devfeed.tech/tags/error.md>), [github](<https://devfeed.tech/tags/github.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [merge](<https://devfeed.tech/tags/merge.md>), [renovate](<https://devfeed.tech/tags/renovate.md>)

## AI overview

A practical guide to finding approved Renovate pull requests that were removed from GitHub's Merge Queue after failed status checks. It uses a GitHub GraphQL query to identify the affected pull requests and the removal reason.

## Source excerpt

🤖 This post includes some LLM-derived content 🤖 In the Renovate project, we use the Merge Queue to merge PRs. If a PR fails its status checks, it will be pulled out of the Merge Queue, and a maintainer will need to re-queue it, if it is a transient error. For those of you unaware, GitHub are having a pretty hard time recently with outages, which means that we're seeing an increase in the number of PRs being pulled out of the Merge Queue due to transient errors due to GitHub's instability (and in rare cases, due to flakiness in our test suite). For a number of these PRs, they're dependency updates that Renovate raises (:yo_dawg:) which means that a maintainer doesn't necessarily see they're unmerged. If we want to find out which PRs are approved, but not merged due to the merge queue un-queuing them, we can use the following GraphQL query: # via Claude Sonnet 5 $ gh api graphql -f query='query { search(query: "repo:renovatebot/renovate is:pr is:open review:approved", type: ISSUE, first: 50) { nodes { ... on PullRequest { number title reviewDecision timelineItems(itemTypes: [REMOVED_FROM_MERGE_QUEUE_EVENT], first: 5) { nodes { ... on RemovedFromMergeQueueEvent { createdAt reason } } } } } } }' { "data": { "search": { "nodes": [ { "number": 45225, "reviewDecision": "APPROVED", "timelineItems": { "nodes": [] }, "title": "chore(deps): update dependency @biomejs/biome to v2.5.7 (main)" }, { "number": 45223, "reviewDecision": "APPROVED", "timelineItems": { "nodes": [ { "createdAt": "2026-08-11T13:26:04Z", "reason": "failed_checks" } ] }, "title": "fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.2 (main)" }, { "number": 44971, "reviewDecision": "APPROVED", "timelineItems": { "nodes": [] }, "title": "fix(manager/mix): run mix commands from the lock file's directory" } ] } } } In this case, we can see that PR 45223 was taken off the Merge Queue and needs to be merged.