We are testing our migration of SharePoint 2010 content databases to a SharePoint 2013 test farm. When we mount/upgrade these content databases in our test farm some site fail to render with multiple errors in the ULS.
A typical ULS entry looks like this:
System.ArgumentException: Exception of type 'System.ArgumentException' was thrown. Parameter name: encodedValue
at Microsoft.SharePoint.Administration.Claims.SPClaimEncodingManager.DecodeClaimFromFormsSuffix(String encodedValue)
at Microsoft.SharePoint.Administration.Claims.SPClaimEncodingManager.DecodeClaim(String value)
at Microsoft.SharePoint.SPUserToken.GetClaimsUserLoginName()
at Microsoft.SharePoint.SPSite.CopyUserToken(SPUserToken userToken)
at Microsoft.SharePoint.SPSite.SPSiteConstructor(SPFarm farm, Guid applicationId, Guid contentDatabaseId, Guid siteId, Guid siteSubscriptionId, SPUrlZone zone, Uri requestUri,
String serverRelativeUrl, Boolean hostHeaderIsSiteName, SPUserToken userToken, Boolean appWebRequest, String appHostHeaderRedirectDomain, String appSiteDomainPrefix, String subscriptionName, String appSiteDomainId, Uri primaryUri)
at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, Boolean swapSchemeForPathBasedSites, SPUserToken userToken)
at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, SPUserToken userToken)
at Microsoft.SharePoint.SPSite..ctor(String requestUrl, SPUserToken userToken)
at Microsoft.SharePoint.Publishing.CachedObjectFactory.get_SuperUserSite()
at Microsoft.SharePoint.Publishing.CachedObjectFactory.OpenWebFromSuperUserSite(Guid webId)
at Microsoft.SharePoint.Publishing.CacheManager..ctor(SPSite site)
at Microsoft.SharePoint.Publishing.CacheManager.GetManager(SPSite site, Boolean useContextSite, Boolean allowContextSiteOptimization, Boolean refreshIfNoContext)
at Microsoft.Office.DocumentManagement.MetadataNavigation.MetadataNavigationSettings.GetCachedArea(SPWeb web)
at Microsoft.Office.DocumentManagement.MetadataNavigation.MetadataNavigationContext.GetMetadataNavigationHintsForList(SPWeb web, Guid listGuid)
at Microsoft.Office.DocumentManagement.MetadataNavigation.MetadataHierarchyNodeSiteObject.get_HasChildren()
at System.Web.UI.WebControls.TreeView.DataBindRecursive(TreeNode node, IHierarchicalEnumerable enumerable, Boolean ignorePopulateOnDemand)
at System.Web.UI.WebControls.TreeView.PerformDataBinding()
at Microsoft.SharePoint.WebControls.SPTreeView.PerformDataBinding()
at System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect()
at System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()
at System.Web.UI.WebControls.BaseDataBoundControl.OnPreRender(EventArgs e)
at System.Web.UI.WebControls.TreeView.OnPreRender(EventArgs e)
at Microsoft.SharePoint.WebControls.SPTreeView.OnPreRender(EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
We have found that the only sites that fail that way are sites with the Publishing Infrastructure feature activated. If we deactivate that feature, the site will render (as a 14-mode site) properly.
We do not believe that the problem is with the content databases, because when we attach the same upgraded database to a different SharePoint 2013 farm, the sites with this particular feature render properly. Both of these farms are on build 15.0.4569.1000.