kenticokentico-11

Kentico upgrade 10 to 11 - CMSDataVersion upgrade failure


I used the upgrade100_110.exe tool to upgrade my Kentico 10 CMS solution. The solution and database schema were successfully upgraded, but upon accessing the site's admin portal in a web browser, the expected data upgrade did not occur. To clarify, the CMSSettingsKey KeyValue for CMSDBVersion is 11.0, but the CMSSettingsKey KeyValue for CMSDataVersion is still 10.0.

The only UPGRADE events in the Kentico event log are the following: Message: 'system' is a duplicate attribute name. Line 1, position 5202.

Exception type: System.Xml.XmlException Stack trace: at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.AttributeDuplCheck() at System.Xml.XmlTextReaderImpl.ParseAttributes() at System.Xml.XmlTextReaderImpl.ParseElement() at System.Xml.XmlTextReaderImpl.ParseElementContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) at System.Xml.XmlDocument.LoadXml(String xml) at CMS.FormEngine.FormHelper.MergeFormDefinitions(String original, String alternative, Boolean includeAllAltFields) at UpgradeProcedure.UpdateAlternativeForms() at UpgradeProcedure.UpgradeApplication(Func`1 versionSpecificMethod, String newVersion, String packageName) at UpgradeProcedure.Update()

and

Message: 'system' is a duplicate attribute name. Line 1, position 5202.

Exception type: System.Xml.XmlException Stack trace: at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.AttributeDuplCheck() at System.Xml.XmlTextReaderImpl.ParseAttributes() at System.Xml.XmlTextReaderImpl.ParseElement() at System.Xml.XmlTextReaderImpl.ParseElementContent() at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) at System.Xml.XmlDocument.Load(XmlReader reader) at System.Xml.XmlDocument.LoadXml(String xml) at CMS.FormEngine.FormHelper.MergeFormDefinitions(String original, String alternative, Boolean includeAllAltFields) at UpgradeProcedure.UpdateAlternativeForms() at UpgradeProcedure.UpgradeApplication(Func`1 versionSpecificMethod, String newVersion, String packageName) at UpgradeProcedure.Update()

I'm looking for suggestions on how to troubleshoot this problem. Any suggestions on where to start would be helpful!


Solution

  • Are there any custom modules or modules from marketplace? I've seen an issue where this error had been caused by the URL Redirection module. https://devnet.kentico.com/articles/url-redirection

    Or, another idea: MergeFormDefinitions will merge upgraded form definitions with previous ones to transfer custom fields to new forms.

    It seems like one of the old forms is not stored correctly and the XML definitions are containing system elements twice. Or, it contains a field called like this which could be a reserved word. You can check the definitions in the CMS_Calss table to see it contains a element.

    Alternatively, you can add a breakpoint into the upgrade procedure to catch the temp table. Then you will be able to see the new definitions and compare them. These two are being merged later and it seems the issue occurs at that time.