Lesstep
Azure DevOps Services and Server · REST API, Azure CLI and pipelines · Checked October 24, 2026

Azure DevOps: "TF401179: An active pull request for the source and target branch already exists."

Azure DevOps keeps one active pull request for each pair of source and target branch. TF401179 means that pair already has one, and a draft counts, because a draft is an active pull request too. Nothing is wrong with the new commits: pushing them to the source branch updates the pull request that is already open.

The whole answer

As public reports from 2019 to October 2026 quote it, from the REST API, az repos pr create, pipeline tasks that create pull requests, and .NET clients:

HTTP/1.1 409 Conflict

{"$id":"1","innerException":null,"message":"TF401179: An active pull request for the source and target branch already exists.","typeName":"Microsoft.TeamFoundation.Git.Server.GitPullRequestExistsException, …","typeKey":"GitPullRequestExistsException",…}

Find the pull request that is already open

What to do

  1. To add commits, push them to the source branch. The open pull request shows them as a new update; there is nothing to create.
  2. To start over, complete or abandon the open pull request, then create the new one. An abandoned pull request no longer holds the pair.
  3. To have two pull requests, make a new branch from the source branch and open the second one from it.
  4. In a pipeline or a script that opens the same pull request on every run, treat TF401179 as "already open": look the pull request up as above and update its title or description instead of failing the run. Public tools that open pull requests on a schedule do exactly this.

Azure DevOps pull requests in IntelliJ IDEA and Rider

Azure DevOps Pull Requests, a plugin by Lesstep for JetBrains IDEs 2024.1 or later and Android Studio, reads the organization, project and repository from your git remote and lists the pull requests that wait for your review in an IDE tool window, on Azure DevOps Services and on Azure DevOps Server. Create Azure DevOps Pull Request opens one from the current branch, after checking that the branch was pushed. From version 1.0.36, when that branch already has an active pull request into the same target, it names that pull request and says that pushing to the branch updates it. The review inbox is free; voting, commenting, completing and creating are Pro, with a 30-day trial.

Get it on JetBrains Marketplace

Azure DevOps is a trademark of Microsoft Corporation; IntelliJ IDEA and Rider are trademarks of JetBrains s.r.o. This page is not affiliated with or endorsed by Microsoft or JetBrains.

More: TF401398: the source or the target branch is missing · TF402455: pushes to this branch are not permitted · TF401027: a missing Git permission · TF401181: it was completed or abandoned · 日本語