Home / Sharepoint 2010 / Removing a Corrupted Site Column in SharePoint 2010

Removing a Corrupted Site Column in SharePoint 2010

Errors like correlation Id:

System.ArgumentException: Invalid field name: {GUID} [URL of list]  (ULS log)

 “Field type xxx is not installed properly. Go to the list settings page to delete this field.”

To determine what field is causing the error run this PowerShell script.  The PowerShell should terminate with an error, along with the name of the erroneous field.

$web = Get-SPWeb http://portal/site

$fields = $web.Fields

foreach ($field in $fields} {write-host $field.id}

First you will need to determine the GUID ID for the corrupted column.  To do this you will run a PS script against the Site Collection to generate a report that lists all the fields, like so.

$web = Get-SPWeb http://portal/site

$web.AvailableFields.SchemaXml | Out-File c:\temp\fields.txt

Once done open up the fields.txt file and do a search for the corrupted column.

After determining the field name for the {GUID} I was then able to identify the problem column or content type. In my case the issue was with a column name “TypeTaxHTField0″ or simply Type. SharePoint by default appends the TaxHTField0 suffix to the end of all the static names.

Now that I have the Field Name Column, I needed a way to get into the lists settings to either delete or remove this column from the list. Since I was unable to access the list because of the correlation id, I had to determine the {GUID} of the list.

The way to get the {GUID} of the list I turned to PowerShell.

Below is the script I used to get the {GUID} of the list.

$site = Get-SPSite {URL OF YOUR SITE}

$web = $site.OpenWeb(“SUBSITE”)

$web.lists | Format-Table title,id

$web.Dispose()

$site.Dispose()

Once I got the {GUID} of the list I was then able to browse to the library settings by appending the {GUID} to the end of the list settings edit URL

i.e.

http://URL OF SITE/SUBSITE/_layouts/listedit.aspx?List={GUID}

Once inside the list settings I was then able to make the necessary changes. For me all I needed to do was remove the “Type” column from the Metadata Navigation Settings by removing it from both “Configure Navigation Hierarchies” and “Configure Key Filters”

Once I removed the “Type” column from the Metadata Navigation I then deleted the “Type” column from my list and then re-added it. Once I re-added it back into the list, I then re-added it back into the Metadata Navigation. Ater doing so I was able to access the list without error. If you find you do not need that column at all, simply delete it from your list.

Another way to get the field name from “SharePoint Manager” (a tool can be found in codeplex.com ) Run this tool on a SP server and navigate to subsite and fields to get more richer information using object model. http://spm.codeplex.com/

Hopefully this helps others who encounter the same issues.

About Venu Madhav

Check Also

PowerShell Script – list all SharePoint group members

A quick script to query  site collections in a web application for SharePoint group and ...

Leave a Reply