TMS - Recovery - FileNotFoundException : Could not find file

Symptoms/Context:

Tasks submitted into Recovery with the following error message;

FileNotFoundException : Could not find file '\\[Path]\submission_xml.sdlxliff'. : mscorlib : at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at Sdl.FileTypeSupport.Native.Xml.XmlParser.BeforeParsing() at Sdl.FileTypeSupport.Framework.NativeApi.AbstractNativeFileParser.ParseNext() at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext() at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext() at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse() at Sdl.Tms.Ppt.PptBaseCore.DoEntireUpdate(PreprocessingWorkItem taskItem) at Sdl.Tms.Ppt.PptBaseCore.RebuildAll(Int32 taskId, Boolean checkFormatPainting) at Sdl.Tms.Workflow.PreProcess.RebuildFile.Execute() at Sdl.Tms.MessageProcessing.WorkerRequestProcessor.ExecuteMessage()

The following error message has also been seem when a task is submitted to Recovery at the Apply Machine Translation step;

MTTranslationBase.LogMessage: ex.StackTrace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)XX at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)XX at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)XX at Sdl.FileTypeSupport.Native.Xml.XmlParser.BeforeParsing()XX at Sdl.FileTypeSupport.Framework.NativeApi.AbstractNativeFileParser.ParseNext()XX at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext()XX at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext()XX at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse()XX at Sdl.Tms.Ppt.PptBaseCore.GetEMTSegments(Int32 taskId, Boolean workWithTranslationUnits)XX at Sdl.Tms.Archiver.Emt.Apply.RequestMTTranslation.GetAndPassSegmentsUsingPpt()
 

Root Cause:

The specified bilingual file in the error message seen above is likely to be missing from the listed path, in most cases only a .bak file will exist. 

A defect (CRQ-4832) has been raised with SDL Engineering to identify why the bak files exist and there are no target bilingual files.
 

Resolution:

It's possible to rename the .bak file to the expected filename required for SDL TMS to identify and process the bilingual file. It's best practice to advise the Job creator that the bilingual file may need reviewing to confirm up-to-date translations before completing the translation process. The task can be submitted out of the Recovery stage otherwise.

Reference: