Help with Branch Rule Protection - Deployment Required #207221
Replies: 3 comments 6 replies
|
Ran into something similar — the UI showing a successful deployment while branch protection says "no active deployment" usually comes down to a mismatch in what "active" means for the rule. A few things to check on the problem repo specifically: Environment name must match exactly. The branch rule references an environment called Which deployment counts. Branch rules look for a deployment on the head commit of the PR. If the successful deployment you see is on an older commit or a different branch, the merge will still be blocked. Environment protection rules. Go to Settings → Environments → qa. Check if "Required reviewers" or "Wait timer" left a deployment in Compare with a working repo. Diff these between working and broken repos:
The screenshot showing success in the Environments panel but block on merge often means the deployment exists but isn't tied to the commit the PR is trying to merge. Re-run the workflow on the PR head commit and see if the merge button unlocks. If you can share whether the deployment runs on |
|
When GitHub branch protection rules require a successful deployment (e.g., to environment 'qa') before merging, the deployment check evaluates specific criteria:
If you continue to experience this issue across a single specific repository while 10+ identical repos function, navigate to your Repository Settings -> Actions -> General and verify Workflow Permissions (Read & Write permissions and Allow GitHub Actions to create and approve pull requests). Occasionally, restricted GITHUB_TOKEN permissions silently block the GitHub deployment status API creation while allowing job execution to finish as green. |
|
To answer the actual question at the end here: no, Community Discussions aren't a monitored support queue. Replies here (mine included) are just other users, not GitHub staff, unless you literally see a "Staff" badge on someone's name. So this thread on its own isn't going to get an engineer poking at your repo's backend state. What actually works is opening a ticket at support.github.com and picking Actions (or Repositories) as the topic. The thing that gets these escalated past the generic first-reply instead of bouncing back with "please check your config" is giving them something they can't explain away: the PR URL, the deployment ID/URL from the Environments page for the qa deployment showing success, both SHAs (PR head vs whatever the deployment API says it deployed), and the one line that matters most — identical branch protection config works on 11 other repos and fails on every single PR in this one. That's not a "did you typo the environment name" ticket, that's a "something is broken in the deployment-status backend for this repo specifically" ticket, and it reads that way to whoever triages it. If you're on a paid plan (Team/Enterprise) it's also worth checking under Settings → Billing which support tier you're on before filing, since that changes the queue and the SLA you get. |


Uh oh!
There was an error while loading. Please reload this page.
🏷️ Discussion Type
Question
💬 Feature/Topic Area
Workflow Deployment
Discussion Details
I am facing a strange behavior on a specific repository.
I have a workflow to build and deploy specific branches, and a branch protection rule that requires a successful deployment to "qa" environment before merging.
This is working fine for every repository that I have, except for one. I am not sure what is the issue here.
As you can see it's identifying an active success deployment on qa, however merging is blocked because there's no active deployment on qa... wth?
All reactions