Extremely slow QA Term Verification and "Failed to verify document: Object reference not set to an instance of an object" message to rub salt in the wound!

QA Terminology verification is incredibly, unbearably, unacceptably slow in Trados 2019.
Ok, here's the situation. I have a 20k word Project divided in multiple SDLXLIFF files. I always perform a virtual merge to work on them.
 
I have also created a Termbase which is, I believe, normal-sized (2571 entries, not huge, right?) with use of synonyms (while there are 2571 entries, there are 2747 source terms and 3239 target terms, I don't think that's relevant but I am mentioning it just in case).
 
Well, having ALL QA boxes except Terminology Verifier OFF (that is, I don't check for Grammar, QA, Number Verifier plugins or anything like that), the verification (pressing F8) is unacceptably slow. I have grown tired after 10 minutes of continuous work (and the progress bar was not even half finished!)))
 
To rub salt to the wound, I grew tired and canceled the verification and it's now taking a simmetrically long time just TO CANCEL! (My trados is blocked, it's now been over 10 minutes just to cancel the verification and it does not seem like it's going to end anytime soon!)
 
My computer is a top gaming laptop, 24 GB Ram, Windows 10, and the terminology file is located in a SSD drive (Trados itself is not, due to not daring to make the migration to an entirely SSD-based operating system, as I have MILLIONS of applications).
 
I don't think this behaviour is normal, but I am out of options. I perform frequent termbase reorganizations in Multiterm, to no avail.
 
Now, Terminology Verification is all but useless!
 
To make things worse, I did a retry after performing a fresh reorganization and decided to be patient and wait it out. And after some long time, the QA crashed with the message...
 
"Failed to verify document: Object reference not set to an instance of an object."
 
GREAT!!!
 
Apparently one term in my termbase is ALSO broken (don't think it was responsable for the slow processing, though.. it's just and additional problem!)
 
And the log file does not help (here it is in case someone knows what this is about)
 
<SDLErrorDetails time="25/02/2019 17:51:55">
  <ErrorMessage>Failed to verify document: Object reference not set to an instance of an object.</ErrorMessage>
  <Exception>
    <Type>System.NullReferenceException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Type>
    <HelpLink />
    <Source>Sdl.Verification.TermVerifier</Source>
    <HResult>-2147467261</HResult>
    <StackTrace><![CDATA[   at Sdl.Verification.TermVerifier.TermVerifierProcessing.CheckTermsWithoutTarget(ISegment source, String sourceText)
   at Sdl.Verification.TermVerifier.TermVerifierProcessing.Verify(ISegment Source, ISegment Target, Boolean sourceHasRevisions, Boolean targetHasRevisions)
   at Sdl.Verification.TermVerifier.TermVerifierMain.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.Bilingual.Tmfc.TmfcReaderImpl.vv_Visit(TmfcReaderImpl* , FrameworkParagraphContainerField* field)
   at FrameworkParagraphContainerField.vv_AcceptFrameworkVisitor(FrameworkParagraphContainerField* , FrameworkFieldVisitor* visitor)
   at Sdl.FileTypeSupport.Bilingual.Tmfc.TmfcReaderImpl.vv_VisitStartEndField(TmfcReaderImpl* , StartEndField* startEnd)
   at Sdl.FileTypeSupport.Bilingual.Tmfc.TmfcReaderImpl.b_VisitNext(TmfcReaderImpl* )
   at Sdl.FileTypeSupport.Bilingual.Tmfc.TmfcReader.ParseNext()
   at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext()
   at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext()
   at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse()
   at Sdl.TranslationStudio.Editor.Verification.VerifyDocumentJobRequest.PerformBilingualVerification()
   at Sdl.TranslationStudio.Editor.Verification.VerifyDocumentJobRequest.Execute(IJobExecutionContext context)
   at Sdl.Desktop.Platform.Implementation.Services.Job.<_worker_DoWork>b__47_0()
   at Sdl.Desktop.Logger.Log.Resources(Object message, Action action)
   at Sdl.Desktop.Platform.Implementation.Services.Job._worker_DoWork(Object sender, DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)]]></StackTrace>
  </Exception>
  <Environment>
    <ProductName>SDL Trados Studio</ProductName>
    <ProductVersion>15.0.0.0</ProductVersion>
    <EntryAssemblyFileVersion>15.1.2.48878</EntryAssemblyFileVersion>
    <OperatingSystem>Microsoft Windows 10 Pro</OperatingSystem>
    <ServicePack>NULL</ServicePack>
    <OperatingSystemLanguage>3082</OperatingSystemLanguage>
    <CodePage>1252</CodePage>
    <LoggedOnUser>PORTÁTIL\Ignacio</LoggedOnUser>
    <DotNetFrameWork>4.0.30319.42000</DotNetFrameWork>
    <ComputerName>PORTÁTIL</ComputerName>
    <ConnectedToNetwork>True</ConnectedToNetwork>
    <PhysicalMemory>25058832 MB</PhysicalMemory>
  </Environment>
</SDLErrorDetails>
 
 
Any ideas, please? Termbase checking is crucial for my projects.
If it's any indication, QA software Verifika takes less than 3 minutes in doing this same operation... but of coruse that involves using a third party program and working harder to implement changes in Trados files afterwards..
  • Hello  ,

    Thank you for the information provided- there seems to be a number of sources which might be causing the issues.

    First of all I would suggest running through the following articles (1&2) to make sure everything is really up to date.

    community.sdl.com/.../3392.how-to-part-1-trouble-shoot-unexplained-errors-and-unwanted-behavior-in-studiomultiterm

    Now in reference to the error message -This does appear to suggest that the corrupt entry/entries are indeed part of the problem.- 

    Unknown said:
    StackTrace><![CDATA[   at Sdl.Verification.TermVerifier.TermVerifierProcessing.CheckTermsWithoutTarget(ISegment source, String sourceText)

    So maybe (and to eliminate this error source first of all) remove the Termbase from the project, open your Termbase and correct the broken term you already know is broken. Simply reorganising the Termbase wont necessarily fix such issues.

    Unknown said:
    Apparently one term in my termbase is ALSO broken (don't think it was responsable for the slow processing, though.. it's just and additional problem!)

    Now add the TB back into the project and see if the issues have been resolved and the error is no longer appearing.

     

    Lydia Simplicio | RWS Group

    _______
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub



  • Would be able to share a project and termbase where this happens? We would like to test a possible fix with the development team and it would help to have some good examples of problematic projects/processes. Please drop me an email at pfilkin@sdl.com if you can share something with us.

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

  • I might but I am somewhat concerned with confidentiality issues, Paul. I'll see what I can do, however.
  • Hi,  ,

    is there already a solution for this? We keep getting a similar error with Check Forbidden Terms (see Stacktrace). We have the latest Trados Studio 2022 version (including SR1 and CU1): 17.1.8.17828

    <SDLErrorDetails time="24.10.2023 15:18:32">
      <ErrorMessage>Failed to verify document: Object reference not set to an instance of an object.</ErrorMessage>
      <Exception>
        <Type>System.NullReferenceException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Type>
        <HelpLink />
        <Source>Sdl.Verification.TermVerifier</Source>
        <HResult>-2147467261</HResult>
        <StackTrace><![CDATA[   at Sdl.Verification.TermVerifier.TermVerifierProcessing.CheckForbiddenTerms(ISegment target)
       at Sdl.Verification.TermVerifier.TermVerifierProcessing.Verify(ISegment source, ISegment target, Boolean sourceHasRevisions, Boolean targetHasRevisions)
       at Sdl.Verification.TermVerifier.TermVerifierMain.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.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.Bilingual.Tmfc.TmfcReaderImpl.vv_Visit(TmfcReaderImpl* , FrameworkParagraphContainerField* field)
       at FrameworkParagraphContainerField.vv_AcceptFrameworkVisitor(FrameworkParagraphContainerField* , FrameworkFieldVisitor* visitor)
       at Sdl.FileTypeSupport.Bilingual.Tmfc.TmfcReaderImpl.vv_VisitStartEndField(TmfcReaderImpl* , StartEndField* startEnd)
       at Sdl.FileTypeSupport.Bilingual.Tmfc.TmfcReaderImpl.b_VisitNext(TmfcReaderImpl* )
       at Sdl.FileTypeSupport.Bilingual.Tmfc.TmfcReader.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse()
       at Sdl.TranslationStudio.Editor.Verification.VerifyDocumentJobRequest.PerformBilingualVerification()
       at Sdl.TranslationStudio.Editor.Verification.VerifyDocumentJobRequest.Execute(IJobExecutionContext context)
       at Sdl.Desktop.Platform.Implementation.Services.JobExecuter.Execute(JobData jobData)
       at Sdl.Desktop.Platform.Implementation.ResourceLoggingInternalCommandExecuter`1.ExecuteWithResourceLogging(TCommandData commandData, String message)
       at Sdl.Desktop.Platform.Implementation.Services.Job._worker_DoWork(Object sender, DoWorkEventArgs e)
       at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
       at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)]]></StackTrace>
      </Exception>
      <Environment>
        <ProductName>Trados Studio</ProductName>
        <ProductVersion>Studio17</ProductVersion>
        <EntryAssemblyFileVersion>17.1.8.17828</EntryAssemblyFileVersion>
        <OperatingSystem>Microsoft Windows 10 Enterprise</OperatingSystem>
        <ServicePack>NULL</ServicePack>
        <OperatingSystemLanguage>1031</OperatingSystemLanguage>
        <CodePage>1252</CodePage>
        <LoggedOnUser>MEWO\skat</LoggedOnUser>
        <DotNetFrameWork>4.0.30319.42000</DotNetFrameWork>
        <ComputerName>PC-AT11-008</ComputerName>
        <ConnectedToNetwork>True</ConnectedToNetwork>
        <PhysicalMemory>8274236 MB</PhysicalMemory>
      </Environment>
    </SDLErrorDetails>

    emoji
  •  

    is there already a solution for this?

    No.

    Only solution is normally to disable term verification.  I think you'll need to wait for the next major release before this gets resolved as there are some pretty wide ranging changes expected which should allow us to start improving the terminology experience in Studio.

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

    emoji
  •   

    This is unfortunate, but okay... :( Do you know when the next major release will be?

    emoji
  •  

    Do you know when the next major release will be?

    No.  We haven't published any details on this yet.

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

    emoji