Symptom: Not able to “save” anything to TFS including checking in code, saving work items, etc.

Cause: If Google it, you will find all kind of cases can cause this. For me, it happened right after I changed work item table (WorkItemsLatest) directly on the TFS database (Tfs_DefaultCollection). No matter what causes it, the reason you are getting it is because TFS will do a validation (something like IsValid()) before saving it to the system (database tables). And if it did not pass the validation, you will get this error.

Solution: For me, it is because the AreaId does not exist. So just change it to something valid fixed the issue. Now here is an useful tip to revert (if your change messed it up) it back. In TFS, it keps 3 similar tables for WorkItems along (WorkItemsLatest, WorkItemsAre, and WorkItemsWere). WorkItemsLatest is what you see from your client. If you change something, it is the copy sync’d with your client (both way). WorkItemsWere keeps all history of all work items. In between, you got WorkItemsAre having the same table structure as WorkItemLatest for another layer of integrity. So they become our friend when in need of recover. You can reference back and forth to find out the “original” data you need. When you screwed something up and need to use them to recover, do not forget to back it up (if you already did, that’s good) before you make it even messier .

Advertisements