Updated 29/June/2011; this issue has been fixed with the June CU and that means the described workaround below is obsolete now.
This post might be important for you when: You know and manage your metadata store; sometimes you changed a term and you are wondering why the changed term cannot be seen in a List where you are using the terms in a column.
You also know: Plan managed metadata
We are working currently on an issue where the terms are not updated and with this post I would like to provide you a workaround. Updated 02/May/2011 to improve the quality of the code below because when we use SPSite we should dispose it at the end.
Consider the following scenario:
- You are using Managed Metadata and administrate that within the central administration website.
- You are using a List in a site and added a column to use Terms saved in the Managed Metadata database.
- You merged terms in a term set.
- You deleted site collections where you have been using some terms.
- You changed a term in the taxonomy term store.
- You may run manually the Taxonomy Update Scheduler job on the Scheduled Jobs central admin page or waited more than one hour; because the schedule of that job is set out of the box to run every hour.
- You may see that the changed term has not been updated to the new value on the List where you are using those information.
- You found the following entry in the ULS log:
Exception with ULS log entry 85si:
Exception occurred while hidden list being updated: System.IO.FileNotFoundException: The site with the id 6c03a437-0d6d-44a3-a542-6235b854a36e could not be found.
at Microsoft.SharePoint.SPSite..ctor(Guid id, SPFarm farm, SPUrlZone zone, SPUserToken userToken)
at Microsoft.SharePoint.SPSite..ctor(Guid id)
at Microsoft.SharePoint.Taxonomy.UpdateHiddenListJobDefinition.ProcessProxy(MetadataWebServiceApplicationProxy proxy)
at Microsoft.SharePoint.Taxonomy.UpdateHiddenListJobDefinition.Execute(Guid targetInstanceId)
To work around the issue and update the Taxonomy Hidden list manually you can use the following PowerShell script as follows.
With the blog post experience from my colleague Stefan I built the following script.
I am suggesting to use the PowerShell ISE. Start the ISE as Machine Administrator.
Put the following code lines into a text file and save it as e.g. UpdateTaxonomyHiddenList.ps1.
$Assem = (
"Microsoft.SharePoint, Version=22.214.171.124, Culture=neutral, PublicKeyToken=71e9bce111e9429c" ,
"Microsoft.SharePoint.Taxonomy, Version=126.96.36.199, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
$Source = @"
public static class TaxonomyHiddenList
public static void Update(string SiteUrl)
SPSite Site2Update = new SPSite(SiteUrl);
Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp
Run the script above one time.
After that you can start on the command line to update the TaxonomyHidden List with:
Do this for all sites where you have updated terms.