GitHub: why the review was refused, or the approval does not count
A review is sent to POST /repos/OWNER/REPO/pulls/NUMBER/reviews with event set to APPROVE, REQUEST_CHANGES or COMMENT. GitHub's documentation names the statuses: 200 when the review is created, 403 when you may not, and 422 when the request fails validation or the endpoint has been spammed. GitHub's documentation does not list the 422 messages; the ones below are quoted from public reports, with GitHub's documented rules behind them (checked October 24, 2026).
422: what GitHub says, and why
Can not approve your own pull request(for a request for changes, the GitHub CLI reportsReview Can not request changes on your own pull request): GitHub's documentation says that pull request authors cannot approve their own pull requests. Your account opened it, or the token belongs to the account that opened it (for example, a bot that both opens and approves).User can only have one pending review per pull request(on a reply to a line comment:user_id can only have one pending review per pull request): your account started a review on this pull request and has not submitted it. While it is pending, creating another review, or replying to a line comment through the REST API, answers this.GitHub Actions is not permitted to approve pull requests.: the token is a workflow'sGITHUB_TOKEN, and the repository does not allow Actions to create and approve pull requests. For a repository in a personal account this is off by default; a repository in an organization takes the organization's setting.- A request for changes, or a comment review, without
body: GitHub's documentation says the body is required forREQUEST_CHANGESandCOMMENT. Withoutevent, the review is created as pending, and submitting a pending review without one answers 422.
403, 404
- 403
Resource not accessible by personal access token(orby integration): the token may read the pull request but not review it; a fine-grained token needs Pull requests read and write (see which permission to add). - 404: the repository or pull request is not there for this token, which is also how GitHub answers a private repository the token cannot see.
The review was taken, but the approval does not count
Branch protection decides which approvals count toward the required reviews (GitHub's documentation on protected branches):
- Approvals count from people with write permissions in the repository, or from a designated code owner. Anyone with read access can review, but their approval does not count. In a public repository with code review limits on, people without explicit access cannot approve or request changes at all (see code review limits).
- With Dismiss stale pull request approvals when new commits are pushed, a push that changes the diff dismisses the approval, and someone must approve again.
- With Require review from Code Owners, a change to code with a code owner needs that owner's approval.
- With Require approval of the most recent reviewable push, the person who made the last push cannot be the one who approves it.
- When someone requested changes, the merge answers
Changes have been requested.until that reviewer approves, or someone with write permissions dismisses the review (see why the merge was refused).
What to do
- Your own pull request: ask someone else to review it, or use a token of an account that did not open it. Repository owners and administrators can merge without an approving review where the rules allow it.
- One pending review: open the pull request in the browser as that account, submit the pending review or discard it, then try again.
- GitHub Actions: in the repository's Settings, Actions, General, Workflow permissions, allow GitHub Actions to create and approve pull requests (in an organization, its owner may have to allow it first), or approve with another account's token.
- A request for changes: say what should change in
body. - The approval does not count: check the branch's rules, and approve again after the last push.
In IntelliJ IDEA: no Approve on your own pull request, and "Failed to submit review"
How the GitHub support built into IntelliJ IDEA submits a review, in its source (checked October 31, 2026; IntelliJ IDEA: GHPRSubmitReviewPopup.kt, GHPRSubmitReviewViewModel.kt, GHPRReviewViewModel.kt, GHPRReviewServiceImpl.kt, GHAPIExceptionUtil.kt):
- Approve and Request Changes are offered only when GitHub says the account you logged in with did not open the pull request (
viewerDidAuthor). On your own pull request there is only Comment ("Submit general feedback without explicit approval"), so "Can not approve your own pull request" does not come from the IDE. - Request Changes and Comment stay off until you write something or have comments not yet submitted; Approve needs neither.
- It submits with GitHub's GraphQL API, not the REST endpoint above. When it has loaded a pending review of yours (comments not yet submitted), it submits that review with the button's event (
submitPullRequestReview); otherwise it creates the review with the event in one step (addPullRequestReview). - When GitHub refuses, it reads "Failed to submit review" with GitHub's message; a token without the scopes it needs reads "User authorization failed" instead. What you typed stays, so you can submit again once it is fixed.
GitHub pull requests in IntelliJ IDEA
Pull Request Inbox for GitHub, a plugin by Lesstep for JetBrains IDEs 2024.1 or later, approves or requests changes from the pull request's page in the IDE. A request for changes asks for a comment first, because GitHub needs one. It sends the head commit you had on screen; when the branch moved since, it sends nothing and says to refresh. When GitHub refuses, it shows GitHub's words; for a 403 about the token's permissions, it says which access the token needs. The review inbox, diffs and conversations are free; approving, commenting and merging are Pro (US$1.50 a month, with a 30-day trial).
GitHub is a trademark of GitHub, Inc.; IntelliJ IDEA is a trademark of JetBrains s.r.o. This page is not affiliated with or endorsed by GitHub, Inc. or JetBrains.
More: GitHub merge refused (405, 409) · GitHub search 422 "Validation Failed" · "Resource not accessible by personal access token" · 401 "Bad credentials" · "Resource protected by organization SAML enforcement" · "API rate limit exceeded" · GitHub diff 406 "too_large", 3,000 files · GitHub line comment 422 "must be part of the diff" · GitHub branch update refused (422) · GitHub pull request not created (422, 403) · GitHub auto-merge refused · GitHub draft, ready for review or close refused · GitHub conversation not resolved · GitHub checks not shown (check runs 403) · GitHub file contents not read · GitHub compare refused (404, 422) · GitHub comment or reply refused (403 locked, archived) · GitHub merge method not allowed (405) · GitHub branch not found (404, 301) · GitHub Enterprise Server not reached · GitHub review request not shown · GitHub pull request list incomplete · GitHub 404 Not Found, renamed repositories (301, 307) · GitHub line comment outdated or not on the diff · GitHub pull requests not updating, notifications late · GitHub suggested change cannot be applied · GitHub required check stuck at "Expected" · GitHub code owner review required · GitHub merge blocked by unresolved conversations · GitHub merge blocked by unsigned commits · GitHub branch that merges through a merge queue · GitHub merge waiting for an approval of the most recent push · GitHub merge waiting for code scanning results · GitHub merge waiting for code quality results · GitHub merge blocked by a code coverage threshold · GitHub merge blocked by license compliance results · GitHub branch locked or its updates restricted · GitHub branch not deleted after merging · GitHub merge waiting for a team's approval (Required reviewers) · GitHub merge blocked by secret scanning alerts · GitHub stacked pull request not merging · GitHub push blocked by push rules · GitHub merge blocked by commit metadata rules · GitHub force push blocked · GitHub issue not closed by a merged pull request · GitHub pull request not checked out locally · GitHub pull request has merge conflicts · GitHub changes requested and dismissing a review · GitHub co-author not credited for a commit · GitHub dependency review check failed · GitHub Dependabot not rebasing its pull request · GitHub fork not syncing with upstream · GitHub pull request base branch not changing · GitHub pull request not reverting · GitHub pull request template not showing · GitHub pull request labels or assignees not added · GitHub pull request not closing or reopening · GitHub push blocked by push protection · GitHub pull request comment hidden · GitHub pull request blocked until deployments succeed · GitHub team review request replaced by members · GitHub pull request file no longer marked Viewed · GitHub pull request marked merged without being merged · GitHub Copilot review does not count as an approval · GitHub checks not running on a pull request a workflow created · GitHub Update branch button not shown on a pull request · GitHub checks failing on a Dependabot pull request · GitHub checks failing on a pull request from a fork · GitHub checks skipped by [skip ci] in a commit message · GitHub checks gone after the retention period · GitHub code review limits in a public repository · GitHub pull requests turned off or limited in a repository · GitHub checks run on every pull request in a stack · GitHub pull request showing commits already squash merged · GitHub pull request not showing a file diff · GitHub push to a pull request branch from a fork refused · GitHub check cancelled on a pull request · GitHub Rebase and merge not available · GitHub merge commit message not what you expected · GitHub pull request shows every line changed · GitHub API request timed out · GitHub pull request image or document diff not shown · GitHub review request refused (422) · GitHub pull request from Copilot: checks not running, approval not counted · GitHub push refused: GH006 and GH013 on a protected branch · GitHub "At least 1 approving review is required", approvals that do not count · GitHub pull request plugins for IntelliJ IDEA, compared · 日本語