Fix "no linked branch found" in Azure DevOps
BranchDeploy resolves deployment branches from the Development links on an Azure Boards work item. If it says no linked branch was found, the branch may exist in Azure Repos, but Azure Boards is not linking that branch or pull request to the work item in a way BranchDeploy can use.
This guide gives you a practical checklist for fixing the issue without guessing at branch names.
What BranchDeploy is looking for
BranchDeploy checks the work item's Development links for Azure Repos branches and pull requests. It does not scan every branch in the repository and try to infer which one belongs to the ticket. That is intentional: the work item should be the source of truth for which branch or PR represents the work.
A valid deployment source is usually one of these:
- A linked Azure Repos branch, such as
refs/heads/feature/1234-checkout-flow. - A linked Azure Repos pull request, where BranchDeploy can resolve the PR source branch.
Checklist
1. Check the Development section
Open the work item in Azure Boards and find the Development section. If it does not show a branch or pull request, BranchDeploy has nothing to deploy.
Fix it by creating a branch from the work item or adding a Development link to the existing branch or pull request. Do not use a plain hyperlink in the description or comments; that is not the same as a Development link.
2. Confirm the branch exists in Azure Repos
A work item can have stale links to branches or PRs that no longer exist. Open the linked branch or PR from the Development section. If Azure DevOps shows a missing or deleted branch, create a new link to the active branch.
3. Check whether the work item has only commits linked
Commit links are useful for traceability, but BranchDeploy needs a branch or pull request to determine the deployment source. If the work item only shows commits, link the active branch or PR as well.
4. Look for a linked PR instead of a branch
A linked pull request is valid. BranchDeploy resolves the PR source branch, not the target branch. If the PR source branch has been deleted after merge, create or link the branch you actually want to deploy, or deploy the merged target branch through your normal pipeline flow.
5. Check repository access
If the current Azure DevOps user cannot see the repository or pull request, branch resolution can fail. Make sure the user has permission to view the repository and queue the deployment pipeline.
6. Remove stale Development links
When a work item has several old branches or abandoned PRs, users may see confusing candidates. Remove stale links or use the BranchDeploy branch picker to choose the current branch before deploying.
Fastest fix for most teams
- Open the work item.
- In Development, choose Create branch if no branch exists.
- If a branch already exists, add it as a Development link instead of pasting a URL into a comment.
- Refresh the work item.
- Click the BranchDeploy action again.
Why comments and tags do not work
A comment like "deploy feature/checkout-flow" may be readable to a person, but it is not a reliable deployment instruction. The branch might be renamed, typoed, or copied without its repository context. Development links give Azure DevOps a structured connection between the work item and the repo artifact.
When there are multiple linked branches
Multiple linked branches are common when a ticket has a spike branch, a final implementation branch, and one or more PRs. BranchDeploy shows a picker when there is more than one candidate so the user can choose the right source branch before queueing the pipeline.
If this keeps happening, set a team rule: leave only the active branch and current PR linked while the ticket is in QA, and remove stale links after branches are merged or abandoned.
BranchDeploy-specific checks
- Confirm BranchDeploy is configured in the same Azure DevOps project as the work item.
- Confirm the work item belongs to a repo that BranchDeploy can read through Azure DevOps extension APIs.
- Confirm branch allowlists are not rejecting the resolved branch after it is found.
- Confirm the configured pipeline ID is valid if branch resolution succeeds but the run does not queue.