Issue:
When using PST Flight Deck (FD) to move the content of PST files into an Office 365 target you may encounter some PST files that fail to successfully ingest. In review of the reason why, you find that the failure was triggered by 401 Unauthorized errors.
Details:
In review of the FD Admin Console (FAC), system events similar to the following are logged:

An excerpt of the worker log showing the resultant error can be seen below:

2015-03-20 00:10:57Z|TRACE|P:1460|T:5|FolderCreator|Folder [Archive Folders\Sent Items] in [ArchiveMsgFolderRoot] wasn't found in cache. Adding.
2015-03-20 00:10:59Z|ERROR|P:1460|T:5|FolderCreator|Unable to create/retrieve folder [Archive Folders\Sent Items] in [ArchiveMsgFolderRoot] for [User@Domain.net]
EXCEPTION: Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (401) Unauthorized. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
--- End of inner exception stack trace ---
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request)
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder[TFolder](FolderId folderId, PropertySet propertySet)
at QUADROtech.ExchangeWebServices.Impl.ExchangeServiceWrapper.GetFolderId(WellKnownFolderName folder)
at QUADROtech.ExchangeWebServices.Impl.FolderCreator.RetryFunction[T](Func`1 func)
at QUADROtech.ExchangeWebServices.Impl.FolderCreator.GetCachedRootFolder()
at QUADROtech.ExchangeWebServices.Impl.FolderCreator.GetOrCreateFolderImpl(String path, Func`2 folderCreateFunc)
2015-03-20 00:10:59Z|INFO|P:1460|T:5|PstParserTraverser|Processed file [\\XXXXXXXXXXXXX\d$\FlightDeck\Uploads\-434_XXXXXXXXXXXXX_635622611166562241.pst].
2015-03-20 00:10:59Z|INFO|P:1460|T:5|MessageExport|Finalized export for pst [\\XXXXXXXXXXXXX\d$\FlightDeck\Uploads\-434_XXXXXXXXXXXXX_635622611166562241.pst.failed].
2015-03-20 00:10:59Z|ERROR|P:1460|T:5|IngestWorker|Problem with ingestion
EXCEPTION: Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (401) Unauthorized. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
--- End of inner exception stack trace ---
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request)
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder[TFolder](FolderId folderId, PropertySet propertySet)
at QUADROtech.ExchangeWebServices.Impl.ExchangeServiceWrapper.GetFolderId(WellKnownFolderName folder)
at QUADROtech.ExchangeWebServices.Impl.FolderCreator.RetryFunction[T](Func`1 func)
at QUADROtech.ExchangeWebServices.Impl.FolderCreator.GetCachedRootFolder()
at QUADROtech.ExchangeWebServices.Impl.FolderCreator.GetOrCreateFolderImpl(String path, Func`2 folderCreateFunc)
at QUADROtech.FlightDeck.Office365.Ingest.Library.PstIngestProcessor.GetOrCreateFolder(IFolderInfo parentFolder)
at QUADROtech.FlightDeck.Office365.Ingest.Library.PstIngestProcessor.ProcessMessage(IFolderInfo parentFolder, IMessageInfo messageInfo)
at QUADROtech.FlightDeck.PostProcess.PstLibrary.PstParserTraverser.ProcessMessages(RDOFolder folder, IFolderInfo parentFolder, Boolean isAssociated)
at QUADROtech.FlightDeck.PostProcess.PstLibrary.PstParserTraverser.TraverseThroughFolders(IRDOFolder folder, FolderInfo parentFolder)
at QUADROtech.FlightDeck.PostProcess.PstLibrary.PstParserTraverser.ProcessTask()
at QUADROtech.FlightDeck.Office365.Ingest.Library.IngestProcessor.Execute()
at QUADROtech.FlightDeck.Office365.Ingest.Library.IngestWorker.Start()
2015-03-20 00:10:59Z|INFO|P:1460|T:5|IngestWorker|Ingest worker finished

Solution:
This is caused by at least one ingestion account having inappropriate credentials, an expired password, or an alternate means to fail authentication.  Ensuring account passwords do not expire, the accounts are accessible, and the proper credentials are provided to the Credential Editor will result in no future instances of this error. For more information on how to edit or change the credentials for an Office 365 migration please reference the following knowledge base article:

Adding / changing the credentials for O365 ingest account


More Information:
Review of a given worker log can show the account which is failing. Using the example above you have to determine the Process and Thread IDs of the action being taken:
2015-03-20 00:10:59Z|ERROR|P:1460|T:5|FolderCreator|Unable to create/retrieve folder [Archive Folders\Sent Items] in [ArchiveMsgFolderRoot] for [User@Domain.net]
In this case these are 1460 and 5 respectively. Then following the ID pair up the log, you can find what ingestion account was used for this communication. Below is an excerpt showing mention of this log entry:
2015-03-20 00:10:55Z|INFO|P:1460|T:5|WrappedServiceCredentialStorage|Using [pstfd_ingest-10@domain.net] as Service Ingest account
In this case, attempting to access Office 365 using this account name and the same password supplied to FD will also fail. This is at least one instance of an ingest account failing authentication to the target. You may need to continue to review the instances of failures to ensure all the ingest accounts have been properly configured in FD and Office 365.
 

Print Friendly, PDF & Email