Search code examples
sharepointsharepoint-2010

Unable to create a content type - A duplicate content type was found


I'm having this problem and I didnt find any answers on the web.

I have a content type named "Document X" with the original "Document" as parent. (ID is 0x010100ACEA2663B318874AA9192CA9AF678614)

I already have a content type named "Document X 1" with "Document X" as parent. (ID is 0x010100ACEA2663B318874AA9192CA9AF67861401)

When I create a new content type named "Document X 2" with the parent "Document X", I get the error "A duplicate content type 'Document X 2' was found"...

I checked the ULS and the error isn't reported there. I can create new content type from any other content type (out of the box or others I created like "Calendar X") but I cant create new one from that "Document X". (And no I dont have any content type named like that.. whatever name I use, I get the same error)

Full error is:

A duplicate content type "Document X" was found. Troubleshoot issues with Microsoft SharePoint Foundation. Correlation ID: b9d36bb8-1a8e-4ef4-bbd0-fbdf8e70d73b Date and Time: 1/24/2011 3:00:36 PM

This error is happening on my content type hub site but I use and create content type on this site only. I dont create them using Visual studio, its in a production environnement and we have to create them with the Site Settings or Designer but both give me the same error.

I know I dont have much info to give here, I just dont know where to look first..

If anyone have any idea that could help me, I would really appreciate it as I lost a few hours on this already and dont know where to look anymore...

Thanks a lot!


Solution

  • I found my problem, so if this can help some people some day.

    Looks like SharePoint have some problems sometimes to update a field in the content database.

    The field NextChildByte from the dbo.ContentTypes table is the problem.

    Lets say I create a content type with ID 0x010100ACEA2663B318874AA9192CA9AF678614 with Document as parent (0x0101)

    SharePoint will create an entry in the dbo.ContentTypes table.

    When I create an other content type with the first one as parent.. The ID of this new content type will be 0x010100ACEA2663B318874AA9192CA9AF678614*01*) This 01 came from the NextChildByte field from the dbo.ContentTypes table.

    Now SharePoint should update the dbo.ContentTypes table and set the field NextChildByte to 2 so the next content type created using the same parent will be 0x010100ACEA2663B318874AA9192CA9AF678614*02*

    My problem was.. SharePoint didnt update the NextChildByte field so SharePoint was trying to create a content type with ID 0x010100ACEA2663B318874AA9192CA9AF678614*01* when it already existed...

    In my case.. I finally have been able to delete the content type 0x010100ACEA2663B318874AA9192CA9AF678614*01*. When I recreated it, SharePoint did update the NextChildByte to 2 so I was able to create a more child content type after that.

    EDIT: I found afterwards this blog post. Looks like this script could have fix it for me. This would be the best option since updating the database is not a solution.

    http://www.mattjimison.com/blog/2011/06/21/a-duplicate-content-type-found-error/

    Cheers!