Azure DevOps: "TF401174: The item '…' could not be found in the repository '…' at the version specified by '…'"
TF401174 means the repository has no file or folder at that path in that version. The version itself was found: the message says which commit it resolved to. In review tools and diff scripts it is most often a file that the pull request adds, read at the target commit, where it does not exist yet. In pipelines it is a file read from a branch, or from a repository, that does not have it.
The whole answer
Tested on October 24, 2026 on dev.azure.com, against a public repository with no sign-in, by reading a file that a completed pull request added, at the pull request's target commit:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repository}/items
?path=/es-metadata.yml&versionDescriptor.version=2adc745e…&versionDescriptor.versionType=commit&api-version=7.1
HTTP/1.1 404 Not Found
{"$id": "1", "innerException": null,
"message": "TF401174: The item 'es-metadata.yml' could not be found in the repository 'dotnet-public-wiki'
at the version specified by '<Commit: 2adc745e… >' (resolved to commit '2adc745e…')",
"typeName": "Microsoft.TeamFoundation.Git.Server.GitItemNotFoundException, Microsoft.TeamFoundation.Git.Server",
"typeKey": "GitItemNotFoundException", "errorCode": 0, "eventId": 3000}
- The same file at the pull request's source commit answered 200.
- Without a version, the message says
'<Branch: >': the default branch, resolved to its newest commit. - The path is shown without its leading slash. In the same test,
/readme.mdfound/README.md: the case of the path did not matter there.
Neighbours: the version was not found
- TF401175: The version descriptor <Branch: … > could not be resolved to a version in the repository … (also HTTP 404) means the branch was not found. In the same test,
versionDescriptor.version=refs/heads/mainwithversionType=branchgot it, andmainanswered 200: the branch is given withoutrefs/heads/. More on TF401175. - TF401029: Couldn't find Git commit with ID … (HTTP 404) means the commit is not in this repository, for example one from a fork or from another repository.
Where it comes from, in public reports
- Diffs of pull requests: a file that the pull request adds has no earlier version, so reading it at the target or base commit gets TF401174. Review bots quoted it in 2023 and 2024, and an AsciiDoc extension for Azure DevOps started to ignore it for added files in September 2026. A renamed file has the same problem under its new path: read the earlier version from its old path. In the pull request's iteration changes,
changeTypesaysadd,deleteorrename, and a rename also names the old path. - Pipelines reading a file from a branch: in July 2026 a .NET repository's pipelines reported it for
.config/1espt/PipelineBranchControl.ymlonrefs/heads/main, because the pull request that would add the file had not been completed. Templates and configuration read from another repository or branch get it the same way. - A path that is not a path in the repository: an absolute path on the build machine, or a URL. In a 2022 report the item was
C:/Program Files/Gitwhere/was meant; that is what Git Bash on Windows makes of an argument/when it passes it to a Windows program, so check what path reached the server.
What to check
- Read the version in the message: which branch or commit it resolved to. Is the file there?
items?scopePath=/&recursionLevel=OneLevelwith the same version lists what is. - In a pull request, is the file added, deleted or renamed? Then the older or newer side does not have it under that path.
- Does the path have a prefix it should not, such as a drive letter, the repository name or a URL?
- If the message is TF401175 or TF401029 instead, the branch or commit is the problem, not the file.
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. Its diffs read the earlier version only for files that existed there, take a renamed file from its old path, and show an empty side for an added or deleted file. The review inbox and diffs are 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 · TF401019: the repository does not exist or you have no permission · TF401181: completed or abandoned meanwhile · TF401175: no branch by that name · 日本語