Asked by:
CRM 2011 UR 16 fails to upgrade database due to corrupted language packs

Question
-
Hello
On my CRM 2011 OnPremise installation we had 2 Language packs in addition to English: French (1036) and German (1031).
We've removed German, first by disabling it and then by removing it from windows' installed apps. The German LP was no longer appearing in the settings/administration/languages window in CRM.
Now I'm trying to update to UR 16 but it completes without updating the database, leaving it to UR 15 version.
The exception found in the log file is as follows.
13:39:46|Verbose| Found 2 Mui packs in organization (<== error! there's only one!)
13:39:46|Verbose| Found 1 custom activities
13:39:49|Verbose| Analyzing Custom activity Entity xxxxx on presents of LeftVoiceMail/LeftVoiceMailName attributes
13:39:49|Verbose| Custom activity xxxxx doesn't have LeftVoiceMail/LeftVoiceMailName attributes
13:39:49|Verbose| Found 1 custom activities Without LeftVoice Attributes
13:39:49|Verbose| Processing custom activity xxxxx
13:39:49|Verbose| Adding LeftVoiceMail attribute into queue to be created
13:39:49|Verbose| Adding LeftVoiceMailName attribute into queue to be created
13:39:49|Verbose| Setting optionset.Name ='xxxxx_leftvoicemail'
13:39:49|Verbose| Adding xxxxx_leftvoicemail optionset into queue to be created
13:39:49|Verbose| Adding 6c09c74c-25d1-e311-b147-005056aa0001 picklist with value=1 into queue to be created
13:39:49|Verbose| Adding 6f09c74c-25d1-e311-b147-005056aa0001 picklist with value=0 into queue to be created
13:39:49|Verbose| Adding c10ac74c-25d1-e311-b147-005056aa0001 label with type=1, value=Nur zur internen Verwendung. and ObjectColumnName=Description into queue to be created
13:39:49|Verbose| Adding c20ac74c-25d1-e311-b147-005056aa0001 label with type=1, value=For internal use only. and ObjectColumnName=Description into queue to be created
13:39:49|Verbose| Adding c30ac74c-25d1-e311-b147-005056aa0001 label with type=1, value=Utilisation interne uniquement. and ObjectColumnName=Description into queue to be created
13:39:49|Verbose| Adding c40ac74c-25d1-e311-b147-005056aa0001 label with type=1, value=Voicemail verlassen and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding c50ac74c-25d1-e311-b147-005056aa0001 label with type=1, value=Left Voice Mail and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding c60ac74c-25d1-e311-b147-005056aa0001 label with type=1, value=Messagerie vocale quittée and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding 690bc74c-25d1-e311-b147-005056aa0001 label with type=10, value=Voicemail verlassen. and ObjectColumnName=Description into queue to be created
13:39:49|Verbose| Adding 6a0bc74c-25d1-e311-b147-005056aa0001 label with type=10, value=Left Voice Mail. and ObjectColumnName=Description into queue to be created
13:39:49|Verbose| Adding 6b0bc74c-25d1-e311-b147-005056aa0001 label with type=10, value=Messagerie vocale quittée. and ObjectColumnName=Description into queue to be created
13:39:49|Verbose| Adding 6c0bc74c-25d1-e311-b147-005056aa0001 label with type=10, value=Voicemail verlassen and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding 6d0bc74c-25d1-e311-b147-005056aa0001 label with type=10, value=Left Voice Mail and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding 6e0bc74c-25d1-e311-b147-005056aa0001 label with type=10, value=Messagerie vocale quittée and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding a80bc74c-25d1-e311-b147-005056aa0001 label with type=2, value=Ja and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding a90bc74c-25d1-e311-b147-005056aa0001 label with type=2, value=Yes and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding aa0bc74c-25d1-e311-b147-005056aa0001 label with type=2, value=Oui and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding b10bc74c-25d1-e311-b147-005056aa0001 label with type=2, value=Nein and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding b20bc74c-25d1-e311-b147-005056aa0001 label with type=2, value=No and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| Adding b30bc74c-25d1-e311-b147-005056aa0001 label with type=2, value=Non and ObjectColumnName=DisplayName into queue to be created
13:39:49|Verbose| countLabelsToBeCreated=18
13:39:49|Verbose| Error occured: Microsoft.Crm.CrmException: Expected 6*countEnabledMuiPacks 12 == 18 actual labels to be created
at Microsoft.Crm.CrmException.Assert(Boolean condition, String message)
at Microsoft.Crm.SE.DllMethodActions.AddLeftVoiceMailAttributes.AddLabels(EntityMetadataDefinition customActivityDefinition, Guid leftvoicemailAttributeId, Guid optionSetId, Guid pickListId1, Guid pickListId2, MetadataHelper metadataHelper, Int32 countEnabledMuiPacks)
at Microsoft.Crm.SE.DllMethodActions.AddLeftVoiceMailAttributes.Execute()
13:39:49| Info| Database update install failed for orgId = 81f14e86-2e41-4045-9258-9580088d95cc. Continuing with other orgs. Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Microsoft.Crm.CrmException: Expected 6*countEnabledMuiPacks 12 == 18 actual labels to be created
at Microsoft.Crm.CrmException.Assert(Boolean condition, String message)
at Microsoft.Crm.SE.DllMethodActions.AddLeftVoiceMailAttributes.AddLabels(EntityMetadataDefinition customActivityDefinition, Guid leftvoicemailAttributeId, Guid optionSetId, Guid pickListId1, Guid pickListId2, MetadataHelper metadataHelper, Int32 countEnabledMuiPacks)
at Microsoft.Crm.SE.DllMethodActions.AddLeftVoiceMailAttributes.Execute()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
at Microsoft.Crm.Setup.Database.DllMethodAction.Execute(Guid organizationId)
at Microsoft.Crm.Setup.Database.DatabaseInstaller.ExecuteReleases(ReleaseInfo releaseInfo, Boolean isInstall)
at Microsoft.Crm.Setup.Database.DatabaseInstaller.Install(Int32 languageCode, String configurationFilePath, Boolean upgradeDatabase, Boolean isInstall)
at Microsoft.Crm.Setup.Database.DatabaseInstaller.InstallUpdate(String configurationFilePath, Boolean upgradeDatabase)
at Microsoft.Crm.Setup.Common.Update.DBUpdateDatabaseInstaller.OrgInstall(ArrayList orgIdArray)I've highlighted what I think are most important parts in this log.
Seems like it thinks there are still 3 languages installed (french and german in addition to English) and tries to add 6*3=18 strings, when it should have added 6*2=12.
Any clue?
thank you
Thursday, May 1, 2014 11:58 AM