Problem Description
When trying to create a new publishing page based on a custom content type you may encounter this error. You’re more likely to see it if you’re trying to save your page to a location other than the default /pages/ document library.
Solution
This problem occurs when your custom content type definition or your list definition doesn’t reference the base fields required by the publishing infrastructure. In the feature defining your content type and list make sure that you include:
<!-- Title Column -->
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="TRUE" />
<!-- Inherited Publishing Columns Reference -->
<FieldRef ID="{9da97a8a-1da5-4a77-98d3-4bc10456e700}" Name="Comments" />
<FieldRef ID="{51d39414-03dc-4bd0-b777-d3e20cb350f7}" Name="PublishingStartDate"/>
<FieldRef ID="{a990e64f-faa3-49c1-aafa-885fda79de62}" Name="PublishingExpirationDate"/>
<FieldRef ID="{aea1a4dd-0f19-417d-8721-95a1d28762ab}" Name="PublishingContact"/>
<FieldRef ID="{61cbb965-1e04-4273-b658-eedaa662f48d}" Name="Audience"/>
<FieldRef ID="{c79dba91-e60b-400e-973d-c6d06f192720}" Name="PublishingContactEmail"/>
<FieldRef ID="{7546ad0d-6c33-4501-b470-fb3003ca14ba}" Name="PublishingContactName"/>
<FieldRef ID="{dc47d55f-9bf9-494a-8d5b-e619214dd19a}" Name="PublishingContactPicture"/>
<FieldRef ID="{0f800910-b30d-4c8f-b011-8189b2297094}" Name="PublishingPageLayout"/>
<FieldRef ID="{914fdb80-7d4f-4500-bf4c-ce46ad7484a4}" Name="PublishingVariationGroupID"/>
<FieldRef ID="{766da693-38e5-4b1b-997f-e830b6dfcc7b}" Name="PublishingVariationRelationshipLinkFieldID"/>
<FieldRef ID="{543BC2CF-1F30-488e-8F25-6FE3B689D9AC}" Name="PublishingRollupImage"/>
Also, in your schema.xml, defining your list (document library), be sure to include the fields:
<!-- Page Fields -->
<Field ID="{9da97a8a-1da5-4a77-98d3-4bc10456e700}" Type="Note" RichText="TRUE" Name="Comments" Group="_Hidden" DisplayName="$Resources:core,Comments;" Sortable="FALSE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Comments"></Field>
<Field ID="{51d39414-03dc-4bd0-b777-d3e20cb350f7}" Name="PublishingStartDate" StaticName="PublishingStartDate" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_publishingcolumns;" DisplayName="$Resources:cmscore,column_startdate_displayname;" Type="PublishingScheduleStartDateFieldType" Required="FALSE" CanToggleHidden="TRUE" Sealed="TRUE" StorageTZ="UTC"></Field>
<Field ID="{a990e64f-faa3-49c1-aafa-885fda79de62}" Name="PublishingExpirationDate" StaticName="PublishingExpirationDate" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_publishingcolumns;" DisplayName="$Resources:cmscore,column_expirationdate_displayname;" Type="PublishingScheduleEndDateFieldType" Required="FALSE" CanToggleHidden="TRUE" Sealed="TRUE" StorageTZ="UTC"></Field>
<Field ID="{aea1a4dd-0f19-417d-8721-95a1d28762ab}" Name="PublishingContact" StaticName="PublishingContact" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_publishingcolumns;" DisplayName="$Resources:cmscore,column_contact_displayname;" Type="User" Required="FALSE" Sealed="TRUE" List="UserInfo"></Field>
<Field ID="{c79dba91-e60b-400e-973d-c6d06f192720}" Name="PublishingContactEmail" StaticName="PublishingContactEmail" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_publishingcolumns;" DisplayName="$Resources:cmscore,column_contactemail_displayname;" Type="Text" Required="FALSE" Sealed="TRUE" MaxLength="255"></Field>
<Field ID="{7546ad0d-6c33-4501-b470-fb3003ca14ba}" Name="PublishingContactName" StaticName="PublishingContactName" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_publishingcolumns;" DisplayName="$Resources:cmscore,column_contactname_displayname;" Type="Text" Required="FALSE" Sealed="TRUE" MaxLength="255"></Field>
<Field ID="{dc47d55f-9bf9-494a-8d5b-e619214dd19a}" Name="PublishingContactPicture" StaticName="PublishingContactPicture" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_publishingcolumns;" DisplayName="$Resources:cmscore,column_contactpicture_displayname;" Type="URL" Format="Image" Required="FALSE" Sealed="TRUE"></Field>
<Field ID="{0f800910-b30d-4c8f-b011-8189b2297094}" Name="PublishingPageLayout" StaticName="PublishingPageLayout" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_publishingcolumns;" DisplayName="$Resources:cmscore,column_pagelayout_displayname;" Type="URL" Required="FALSE" Sealed="TRUE" ReadOnly="TRUE"></Field>
<Field ID="{914fdb80-7d4f-4500-bf4c-ce46ad7484a4}" Name="PublishingVariationGroupID" StaticName="PublishingVariationGroupID" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="_Hidden" DisplayName="$Resources:cmscore,column_variationgroupid_displayname;" Type="Text" Required="FALSE" Sealed="TRUE" Hidden="TRUE" MaxLength="255"></Field>
<Field ID="{766da693-38e5-4b1b-997f-e830b6dfcc7b}" Name="PublishingVariationRelationshipLinkFieldID" StaticName="PublishingVariationRelationshipLinkFieldID" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="_Hidden" DisplayName="$Resources:cmscore,column_variationrelationshiplinkfieldid_displayname;" Type="URL" Required="FALSE" Sealed="TRUE" Hidden="TRUE"></Field>
<Field ID="{61cbb965-1e04-4273-b658-eedaa662f48d}" Name="Audience" StaticName="Audience" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_publishingcolumns;" DisplayName="$Resources:cmscore,PageContentType_TargetToField_DisplayName;" Type="TargetTo" Required="FALSE" Sealed="TRUE"></Field>
<Field ID="{543BC2CF-1F30-488e-8F25-6FE3B689D9AC}" Name="PublishingRollupImage" StaticName="PublishingRollupImage" SourceID="http://schemas.microsoft.com/sharepoint/v3" Group="$Resources:cmscore,group_pagelayoutcolumns;" DisplayName="$Resources:cmscore,column_rollupimage_displayname;" Type="Image" Required="FALSE" Sealed="TRUE" RichText="TRUE" RichTextMode="FullHtml"></Field>
<!-- END Page Fields -->
If for some reason, you can’t change your content type or list definition, you can get round this by adding the ‘Page’ content type to your library. This will add in the missing fields. If you now remove and re-add your custom content type, it should appear with all the inherited fields. (You can now remove the Page content type if required).