Azure DevOps pull request stuck on “Checking for merge conflicts”
Your pull request shows “Checking for merge conflicts” and never gets past it, so you can't tell whether the branch merges cleanly and you can't complete the pull request. Here is what the message means, why it can get stuck, and what to try, roughly in order.
Install from the Marketplace See how it works Watch the 1-minute video
What the message means
Azure DevOps runs a test merge of the source branch into the target branch in the background. It starts again every time you push to either branch. Until that test merge finishes, the pull request shows Checking for merge conflicts. Normally this takes seconds. When it doesn't finish, the pull request stays in limbo.
Why it can stay there
- A very large repository or many changed files. The test merge has more to do and takes longer.
- A busy target branch. If
mainkeeps receiving pushes, the test merge restarts each time and may never settle. - Stale state in the browser. The merge may be finished while the page still shows the old status.
- A service problem. Azure DevOps Services can have a hiccup or an incident.
- Azure DevOps Server only: the background job agent or its job queue is stuck or slow, so the merge job never runs.
Fixes, in order
1. Refresh the page
Do a hard refresh. If the status was only stale, it updates now.
2. Trigger the test merge again
Push a new commit to the source branch, or update the branch. Every push starts a new test merge.
3. Check the service status
Open status.dev.azure.com and look for an incident in your region. If there is one, wait for it to be resolved.
4. Merge the target branch into the source branch locally
This brings your branch up to date and shows any real conflict on your own machine. Replace
feature/my-branch and main with your source and target branch.
git fetch origin
git checkout feature/my-branch
git pull
git merge origin/main
# resolve any conflicts Git reports, then:
git push
The push starts a new test merge. More detail in how to resolve merge conflicts in an Azure DevOps pull request.
5. Abandon and reactivate the pull request
Abandon the pull request, then reactivate it. Reactivating triggers a fresh merge evaluation.
6. Azure DevOps Server: check the job agent
Ask the administrator to check the TFS Job Agent service on the application tier. If the service is stopped, or the job queue is stuck or slow, background jobs such as the test merge don't run.
The Conflicts tab doesn't load
The Conflicts tab came from Microsoft's DevLabs Pull Request Merge Conflict Extension. It hasn't been updated since November 2023, and Microsoft says there are no development resources for it. If the tab doesn't load, that extension is often the reason. See alternatives to the DevLabs extension.
Merge Conflict Resolver (made by us) adds a Resolve conflicts tab to the pull request, with a 3-way merge editor in the browser. There is a free plan and a 14-day Pro trial. It supports Azure DevOps Services (dev.azure.com) and Azure DevOps Server 2022 or later; see Azure DevOps Server.
Install from the Marketplace See how it works
Related guides
- How to resolve merge conflicts in an Azure DevOps pull request
- Conflicts tab not loading in Azure DevOps
- How to update a pull request with the target branch in Azure DevOps
- Alternatives to the DevLabs Pull Request Merge Conflict Extension
- Merge Conflict Resolver: features, pricing and free plan
- Can't complete an Azure DevOps pull request after resolving conflicts