I’m having a strange issue with our Dynamics CRM 4.0 (we use it to develop customizations).
When trying to export labels (Settings -> Customization -> Export Labels for Translation) the system shows this error (Tracing + DevErrors are enabled, all show the same, aswell as the Event Viewer on the server itself):
Error Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Error Details:
Exception of type 'System.Web.HttpUnhandledException' was thrown.
Full Stack:
[ArgumentException: An item with the same key has already been added.]
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at Microsoft.Crm.Metadata.LabelCollection.Add(Label label)
at Microsoft.Crm.ObjectModel.OrganizationUIService.GetSectionTabAndFieldLabels(IBusinessEntity entity, ILabelLoader labelLoader, ExecutionContext context, Dictionary`2 labels)
at Microsoft.Crm.ObjectModel.OrganizationUIService.RetrieveAllFormLabelsWithAllLanguages(Int32 objectTypeCode, ExecutionContext context)
at Microsoft.Crm.Metadata.OrganizationUIHelper.RetrieveAllFormLabelsWithAllLanguages(Int32 objectTypeCode, ExecutionContext context)
at Microsoft.Crm.Tools.ImportExportPublish.FormXmlHandler.GetLocalizedLabelStringsCollection(Int32 baseLanguageCode, List`1 provisionedLanguages, Dictionary`2 locLabelCollection)
at Microsoft.Crm.Tools.ImportExportPublish.RootTranslationExportHandler.ExportLocalizedLabelStrings(Int32 baseLanguageCode, List`1 provisionedLanguages)
at Microsoft.Crm.Tools.ImportExportPublish.RootTranslationExportHandler.RunExportTranslations(Int32 baseLanguageCode, List`1 provisionedLanguages)
Apparently, no one in the world has ever had this issue (I’ve been googling around for 2 days)…
What I’ve tried:
I checked MetadataSchema.LocalizedLabels for any oddity, I tried joining it to Attribute and Entity to check for duped entries (Exception complains about a duplicate key, so …), almost made LinqPad explode from the massive amount of queries I tried and ditched…
If it’s worth anything, the latest Rollup should be on the server.
A single customized label for a “notes” tab in a custom entity main form was causing the issue. I still have no clue about Why it happened (it’s been created via the stock form designer) but now my issue is resolved.
If anyone needs to follow my steps, you want to look this set of data: