I am recently involved in big migration project from SharePoint 2010 to SharePoint 2013. During this journey I come across a very weird exception - Exception from HRESULT : 0x80131904.
One of the site collections in the migrated web application is giving me this issue for all the users except site collection administrator. When any user other than site collection administrator tries to either change master page or page layouts under look and feel section in the site settings page. The user is getting the below error.
I have checked the permissions for the below lists and it all inherits from parent.
- Master Page Gallery
- Device Channel
"The web application is configured with claims authentication mode however the content database you are trying to attach is intended to be used against a windows classic authentication mode."
then I ran the below script to convert users from Windows to Claims to my content database, but still no luck.
Windows to Claims Conversion:
I have also tried deleting the master page gallery and importing from other working site collection but still the same error message.
ULS logs also giving me very weird errors like below:
Invalid column name 'tp_IsCurrent' - from the SQL executed for AllUserData table of the content database. When I read more about this column in the database I found the below description.
tp_IsCurrent: When a file is checked out, tp_IsCurrent is set to false on that file’s record, and a new line is created for the checked-out version of the file (wherein tp_IsCurrent becomes true).
I have almost lost my patience as I have spent more than a week to troubleshoot this issue. Then I found a light in the tunnel. I tried moving one of the items "BlankWebPartPage.aspx" from the master page gallery to a blanknew document library and have found that it also copies the below fields and content type in the document library when I copied the file.
Content Type: Page Layout
When I click on any of the above lookup fields, I got access denied for all the users except site collection administrators. Then I realised , it is something to do with the access with the above lookup fields.
Then I found, the nice blog explaining about the cache Profiles
and I found my solution to the problem, it is the Cache Profile list has unique permissions. I then just deleted the unique permissions from my cache profile list and everything started working :).
Hope this could save some of your time.