Translation Provider Exception when testing Studio 2024 (SR1)

Context

Since few weeks we are facing an issue (translation provider exception, see details below) which prevents to perform the Finalization in our internal application using Studio 2024 (SR1) APIs.

We have already performed several tests in order to try to identify the cause but without success.

Someone would have an idea what could be the cause and how to solve it?

Here are the environment details :

 The code is executed in a separate application (CAT Client), it is not executed in a Plugin.

 Finalization, when launched in CAT Client, triggers the translation provider exception (see details below)

 Finalization, when launched directly in studio 2024, works correctly

 Groupshare version: GS:15.1.13.14280 - GS 2020 SR1 CU13

 Studio Version: Studio 2021 SR2 - 16.2.9.9198

 Studio Version: Studio 2024 SR1 (18.0.2.3255)

Here are the main tests already done:

 CAT Client 3.2.1 with Studio 2021 works without issue

 CAT Client 4.0.0 (last version of our internal application adapted to studio 2024) but using Studio 2021 works without issue

 CAT Client 4.0.0 using Studio 2024 finalization doesn’t work (triggers the translation provider exception)

Description of the issue:

In our C# application, the API method to update the main memory generate a fatal exception if some Groupshare memories are attached and enabled in the project.

The only way to avoid this exception is to disable all remote memories attached to the project before executing the update main memory batch task.

This exception occurs only when the application uses the Studio 2024 API, on a specific set of groupshare servers.

NB: groupshare server are correctly setup in Trados Studio, correctly enabled in the project, and the connection to the servers is correctly established.

C# code used to update the main memory in our application :

ProjectAutomaticTaskRunner taskRunner = new ProjectAutomaticTaskRunner(project); taskRunner.addTemplateTaskId(AutomaticTaskTemplateIds.UpdateMainTranslationMemories); taskRunner.addTemplateTaskId(AutomaticTaskTemplateIds.GenerateTargetTranslations); taskRunner.runTasks(fileIdList);

(optional) List of automatic task used by our application, possibly affected by the issue:

AutomaticTaskTemplateIds.PerfectMatch

AutomaticTaskTemplateIds.Scan

AutomaticTaskTemplateIds.ConvertToTranslatableFormat

AutomaticTaskTemplateIds.CopyToTargetLanguages

AutomaticTaskTemplateIds.AnalyzeFiles

AutomaticTaskTemplateIds.UpdateMainTranslationMemories

AutomaticTaskTemplateIds.GenerateTargetTranslations

Error returned by the exception:

ProjectAutomationException: Unexpected exception when configuring file multiFileConverter for task 'Update Main Translation Memories': Failed to create an instance of translation provider 'sdltm.gsweb-prd-09.net1.cec.eu.int/.../NormativeMem_EN-FR'

NB: in this example, gsweb-prd-09.net1.cec.eu.int is the correct URL of our groupshare server. "/Public/Resources/NormativeMem_EN-FR" is the path where is store the memory, defined in the CSPROJ this way:

<CascadeEntryItem PerformConcordanceSearch="true" Penalty="2" PerformUpdate="true" PerformNormalSearch="true"> <MainTranslationProviderItem Uri="sdltm.">gsweb-prd-09.net1.cec.eu.int/.../NormativeMem_EN-FR" Enabled="true" /> </CascadeEntryItem>

The server is correctly setup in Studio, using the Windows default user authentication (without password).

The content of this memory is correctly accessible in the translation, in Studio Editor.

Complete stacktrace


   at Sdl.ProjectApi.AutomaticTasks.UpdateTm.AbstractUpdateTmContentProcessor.ProcessBuffer()
   at Sdl.ProjectApi.AutomaticTasks.UpdateTm.AbstractUpdateTmContentProcessor.ProcessWaitingParagraphs()
   at Sdl.ProjectApi.AutomaticTasks.UpdateTm.AbstractUpdateTmContentProcessor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.BilingualApi.AbstractBilingualContentProcessor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Filters.Processors.SegmentRenumberingBilingualProcessor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.BilingualContentHandlerAdapter.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.BilingualContentHandlerAdapter.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.BilingualApi.AbstractBilingualContentProcessor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.Integration.LocationMarkerLocator.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
   at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.ParagraphUnitBuffer.Release()
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.OutputParagraphUnit(IParagraphUnit pu)
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseLocalizableParagraphUnit(transunit transunit, LockTypeFlags lockFlags)
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseTransUnit(transunit transunit)
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseGroup(group group)
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.OnGroup(XmlElement group)
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.<ContinueScanning>b__14_11(ISdlXliffStreamContentHandler handler)
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.ContinueScanning()
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ContinueParsing()
   at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseNext()
   at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext()
   at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext()
   at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse()
   at Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.TaskFileExecuter.Parse(String targetFilePath)'.