I have a problem with ContentTypeBinding when creating a new site. I have custom site template definition where I have referenced Publishing Server Feature, so list Pages is automatically created on site. I need to bind custom content type to OOB Pages list. Do anybody know how to do that? My custom content type is deployed by feature on site collection scope.

Now I trying to do it in this way, but it's not working. In site template I referencing feature, which contains element with content type binding:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentTypeBinding ContentTypeId="GUIDOFCONTENTTYPE" ListUrl="Pages" />

I'm getting this error when I try to create new site:

SPContentTypeBindingElement.ElementActivated(). An error occurred binding content type     '0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF390045BF70D1ABCA4A5BBF576B785EB3A37D' to list '/site/Pages' on web 'http://xxx/site'.  Exception '<nativehr>0x80070057</nativehr><nativestack>owssvr.dll: (unresolved symbol, module offset=0000000000034256)
 at 0x000007FEE9954256 mscorwks.dll: (unresolved symbol, module offset=00000000002BF6D7)
 at 0x000007FEF61FF6D7 Microsoft.SharePoint.Library.ni.dll: (unresolved symbol, module offset=00000000000DAB02)
 at 0x000007FEEAD9AB02 Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001A7B029)
 at 0x000007FEEE8BB029 Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001BDCBB1)
 at 0x000007FEEEA1CBB1 Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001AB76AB)
 at 0x000007FEEE8F76AB Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001AB7D2A)
 at 0x000007FEEE8F7D2A Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001AB6E1F)
 at 0x000007FEEE8F6E1F Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001BFCB4F)
 at 0x000007FEEEA3CB4F Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001BFDF52)
 at 0x000007FEEEA3DF52 Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=00000000025D073E)
 at 0x000007FEEF41073E Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=00000000025D0DEC)
 at 0x000007FEEF410DEC Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001F0BD0F)
 at 0x000007FEEED4BD0F Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001F0D8A6)
 at 0x000007FEEED4D8A6 Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001D2B8EE)
 at 0x000007FEEEB6B8EE Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001AD36D4)
 at 0x000007FEEE9136D4 Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001AD2F86)
 at 0x000007FEEE912F86 Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=00000000020D4DCD)
 at 0x000007FEEEF14DCD Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=00000000022B8A80)
 at 0x000007FEEF0F8A80 Microsoft.SharePoint.ni.dll: (unresolved symbol, module offset=0000000001B006B6)
 at 0x000007FEEE9406B6 Microsoft.S</nativestack>'.

Have anybody some experience with that?


I finded what causes my problem. It's lookup field in my content type. When I put this lookup out it works OK. But I still don't know how to resolve it.

Definition of my lookup:

<Field ID="{2FF1B484-6D70-449c-8E5C-904E4D5971E1}"
     Group="Intranet Columns"

I know, that before this field is created list Categories must exists. So my Categories list is created in web-scope feature A and this lookup field, content type + lookup field and content type binding is in another feature B. I added dependency from B to A. Both features are referenced in onet.xml. Unfortunately I've got still the some problem.


content type definition: Parent ContentType: Article Page (0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D)

<ContentType  ID="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D0054b32f31a8ab44cf914825f88a74e92a"
           Group="Tieto Intranet Content Types"
           Description="My Content Type"
  <FieldRef ID="{2FF1B484-6D70-449c-8E5C-904E4D5971E1}" Name="PageCategory" DisplayName="Category" Required="TRUE"/>      

webfeatures part from onet.xml:


    <!-- Master Page -->
    <Feature ID="4dae3485-c2e5-4c07-adcc-28a7417b6dd9" />

    <Feature ID="985b3cfc-728c-4459-90d9-5d02de88857a" />

    <!-- Publishing Feature -->
    <Feature ID="94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb" />

    <!--Lists definitions + instances CONTAINS Categories list-->
    <Feature ID="be3732cc-6f55-41c1-b62c-a24a43540fad" />

    <!--Content type + Binding + Lookup Fields definition -->
    <Feature ID="cfe7f31c-f1bf-404d-bb8b-8425938a8602" />



I finded that it can be resolved by feature event reciever.

public override void FeatureActivated(SPFeatureReceiverProperties properties)
    using (SPWeb web = (SPWeb)properties.Feature.Parent)
            string ctname = "PagesWithCategory";
            SPContentType mytype = web.AvailableContentTypes[ctname];
            if (web.Lists["Pages"].ContentTypes["PagesWithCategory"] == null)

Another (declarative, probably better) solution is update field definition how Steve recomended me.

  • Does the CT work when provisioned if you remove the CT binding? Could you add the elements and fields xml fles to your post? Sep 18, 2011 at 17:25
  • Thank for comment Anders. I finded that is caused by lookup field, but OK I can add also some more xml files.
    – Michal
    Sep 18, 2011 at 18:56

2 Answers 2


Just a try : replace the Lookup Column definition with this one :

<Field ID="{2FF1B484-6D70-449c-8E5C-904E4D5971E1}"
     Group="Intranet Columns"



Doesn't know why, but it forces SharePoint to use another method internally for setting up the column (using the SharePoint object model, I've red somewhere). Without that, it looks like SharePoint is actually trying to find the list with the Guid "Lists/Categories" (yes I wrote Guid).

I worked recently on a project which a lot of troubles due to the lookup columns. This is definitively a functionality Microsoft should rewrite/debug/document.

  • 1
    Just be careful, this cheat works in a site field definition, but not in a field definition in a list schema.
    – Steve B
    Sep 19, 2011 at 6:57

it seems the key element in the above answer is: Overwrite="TRUE"

I don't pretend to know why but from what I have experience you MUST include this parameter in your lookup column if that column (or a content type that uses it) is going to be reference across features.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.