Build error after migrating to TFS 2012 from TFS 2010

After migrating to TFS 2012 I came across one annoying issue: builds failing (randomly, as seen at first). The build error is not so informative, but it looks like possible migration issue:

“Specified argument was out of the range of valid values. Parameter name: column.”

TFS 2012 specified argument was out of the range of valid values parameter name columnIf looking at the build log you could get an indirect hint what is going wrong:

Associate Changesets and Work Items
Analyzing labels Client_2013.05.26.3 and Client_2013.05.26.4.

The hint: if checked-in code is associated with work item – build will fail.

But I didn’t notice the hint at first and tried several unsuccessful fixes. After failing I looked at the internet and found the description of the same issue: Upgrading your build definitions from TFS2010 to TFS2012

The suggested quick fix in the article is:

The only workaround in the mean time is to turn off the UpdateWorkItems flag on the AssociateChangesetsAndWorkItems activity. This will cause workitems not to be associated with the build.

So to do that, you don’t necessary need to modify your build template, which maybe would fix with multiple builds using the same process template. Rather you can go to individual build definition – process tab and set “Associate Changesets and Work Items” to false as shown below:

TFS 2012 build definition processSo far, after two days builds are doing fine. Hopefully this quick fix will help you while waiting for the real fix from TFS team.

Updated 2013-05-30

Bug will be fixed in Team Foundation Server 2012.3 (Update 3). More details about the bug:

In an environment that uses TFS 2012 and TFS Build Controller 2010, you check in a TFS 2010 build process template. When you queue a build that has associated work item and the work item has an associated changeset, the build fails with the following error message:

Specified argument was out of the range of valid values. Parameter name: column

Leave a Reply

Your email address will not be published.