Wednesday, 28 May 2014

SharePoint 2013 Exception from HRESULT : 0x80131904


Hi All,

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
Then I thought is it something related to windows to claims conversion , as I am getting the below error when I ran Test-SPContentDatabase.

"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
http://sureshpydi.blogspot.com.au/2013/10/cache-profiles-in-sharepoint.html

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.

Cheers,
Isha Jain

 

1 comment:

  1. Hi All,

    Even I had observed this issue and I struggled lot to resolved it.

    I was getting same exception when I add lookup column in the List2 view. The lookup column was from List1.
    I tried many solutions that I found in the blogs. Even I tried above solution, but it didn't worked in my case.
    Finally I just thought; lets try with saving List1 as a template. So I save the List1 as a template and removed existing List1. And recreate new List with this template with same name. Now when I add lookup column into List2 and in the view. Now it was not throwing any exception.
    Issue resolved !!!


    Thanks,

    ReplyDelete