I am having a problem with a custom site column in SP2007, whose field type recently changed. I have defined features for the following artifacts, which are deployed at the site collection scope:
- A feature containing several custom site columns
- A feature containing a custom content type that references the custom site columns using the element
- A feature containing a custom list template (based on the built-in Custom List template) which references the custom site columns, and applies the custom content type.
We recently changed the schema of one of the custom site columns. Specifically, we changed the "Type" attribute from "Text" to "Note". Here is the original schema:
<Field ID="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
Name="CurrentStatus"
StaticName="CurrentStatus"
Group="My Site Columns"
ColName="CurrentStatus"
Type="Text"
ShowInEditForm="FALSE"
ShowInNewForm="FALSE"
ShowInFileDlg="FALSE"
DisplayName="Current Status"
Description="The current status.">
</Field>
And here is the updated schema with the new 'Note' type:
<Field ID="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
Name="CurrentStatus"
StaticName="CurrentStatus"
Group="My Site Columns"
ColName="CurrentStatus"
Type="Note"
RichText="TRUE"
IsolateStyles="TRUE"
RichTextMode="FullHtml"
ShowInEditForm="FALSE"
ShowInNewForm="FALSE"
ShowInFileDlg="FALSE"
DisplayName="Current Status"
Description="The current status.">
</Field>
Now, I recognize that this is not a supported change and I plan to avoid it at all costs in the future. But in our initial testing, we found that all of our existing lists (created using the old site column schema) were seemlessly upgraded to the new schema after deploying the new features. However, occasionally on some systems we are finding that the following error occurs whenever someone tries to create a new instance of a list from our template:
Non-supported field type change.
The field cannot be changed to the new type. Please check the new type and try again. at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateField(String bstrUrl, String bstrListName, String bstrXML) at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
Is there anything we can do to fix the problem (other than reverting the field schema), or are we stuck?