TF42064: The build number already exists for build definition error in TFS2010

In TFS2008, deleting a build removes it from the database itself. If you delete a build called Build_20110423.1 or 1.0.0.1 from Build Explorer and trigger the build again then you will see that new builds starts with same number (Build_20110423.1 or 1.0.0.1) but not with an incremental number (Build_20110423.2 or 1.0.0.2). But, it doesn’t work the same way in TFS2010.

I queued a build in TFS2010 which got failed with Build Number 1.0.14.0 due to compilation errors.

buildnumber1

I wanted to reuse the same build number. So, I have deleted the Build from Build Explorer by checking all the available options.

buildnumber2

Triggered the Build again but it got failed with error TF42064: The build number ‘1.0.14.0’ already exists for build definitionSmile.

buildnumber3

This is because in TFS2010 when you delete the builds, it only gets marked as deleted in the database so that it doesn’t show up in the UI anymore. To get rid of this build completely you actually have to Destroy it using tfsbuild destroy command which is added in TFS2010.

Open the Visual Studio Command Prompt and you can run the tfsbuild destroy command in below mentioned syntax.

C:\WINDOWS\system32>tfsbuild destroy /collection:http://TFSServer:8080/tfs/defaultcollection /builddefinition:"TeamProject\BuildDefinitionName" BuildNumber 1.0.14.0

No builds found for build specification 'BuildNumber'.
Destroy build record for 1.0.14.0 permanently? (Yes/No/All) yes
Destroying 1.0.14.0... Done

I queued the build again and now the build succeeded with 1.0.14.0 Build Number.

buildnumber5

This article is part of the GWB Archives. Original Author: Jahangeer

New on Geeks with Blogs

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.