During a recent deployment, we had a client run into a problem when using SharePoint workspace to navigate to a document library.
The error was: "The field 'TaxCatchAll' contains a lookup to list '{GUID}' that cannot be resolved. The target list may not be part of this site."
The problem was pretty evident by the error message. The Taxonomy Catch All Column was a lookup field to a list that doesn't exist. The Taxonomy Catch All Column is used to manage metadata and tagging across different content and is linked back to a list (TaxonomyHiddenList) at the root site collection to manage it centrally.
The error did not effect the normal usage of the library as it was a hidden field and was not being modified. The reason the problem was being encountered in Workspace was the way Workspace trys to resolve all lookups values to provide you with context.
Using SharePoint Manager, I was able to determine that the list it was looking for was indeed not present, nor was the web in which that list should exist. This presented a major problem as it was a hidden field referencing a hidden list. The only way to fix this was going to be programmatically.
First wet tried using SharePoint Manager to modify the property. With the field being a lookup, it does not allow you to modify the GUID once the field is created. This also meant that we cannot use the object model to go in and programmatically change the GUID either.
The nice thing about this field was that it was a site column and the individual list inherited from that site column. We were able to use code to update the site column and then programmatically delete and re-add the column. When the column was added, it had the correct GUID and worked properly. There was no lost data because the tagging was not working in the state it was in.
We think the problem originated from migrating the lists and libraries from a SharePoint 2010 Beta environment into a production RTM environment. This was a frustrating issue to
try to resolve, but we ended with a reusable solution that can be run quickly to fix the problem across the 150+ lists across 20+ sites that were having the same problem.