Friday, October 1, 2010

SharePoint 2010: One or more field types are not installed properly

We started migrating our old SharePoint 2007 sites to SharePoint 2010. It all has been going pretty smoothly, until we found a pesky little problem when creating new subsites:

"One or more field types are not installed properly. Go to the list settings page to delete these fields."

Not much more detail in the ULS logs to describe which field is not installed properly. After some Googling and experimentation the problem was determined to be the changes between SharePoint 2007 and 2010 in the "Relationship List" (http://{siteurl}/Relationships%20List/AllItems.aspx).

Basically to fix the problem, you need to deactivate the SharePoint Server Publishing Infrastructure feature, delete the relationship list and reactivate the SharePoint Server Publishing Infrastructure feature.

The following PowerShell is all you need:

Disable-SPFeature -Identity F6924D36-2FA8-4f0b-B16D-06B7250180FA -Url http://{siteurl}


$site = Get-SPSite -Identity http://{siteurl}

$site.RootWeb.GetList("Relationships List").Delete()


Enable-SPFeature -Identity F6924D36-2FA8-4f0b-B16D-06B7250180FA -Url http://{siteurl}

5 comments:

Bradley Geldenhuys said...

Hi, Thanks for your post!

When I try using the powershell script provided I get the following error when trying to delete the list.

Exception calling "GetList" with "1" argument(s): "0x80070003"
At D:\Powershell\removelist.ps1:2 char:22
+ $site.RootWeb.GetList <<<< ("Test 1").Delete()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Any ideas?

qsopht said...

Genius. Thanks!

Nico de Jong said...

List can not be deleted .. I deactivated publishing as site and web and deleted the single item in the list and gave myself full control .. dont get it

Exception calling "Delete" with "0" argument(s): "This list cannot be deleted."
At line:2 char:51
+ $site.RootWeb.GetList("Relationships List").Delete <<<< ()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Nico de Jong said...

Solution

$site = Get-SPSite -Identity https://mysite.com
$list = $site.RootWeb.GetList("Relationships List")
$list.AllowDeletion = $True
$list.Update()
$list.Delete()

Nico de Jong said...

Finally found the best solution to this http://www.mukalian.com/blog/post.aspx?id=10bff57f-27bd-47e6-9762-2b80c8118de5