@@ -79,6 +79,7 @@ public class ParatextSyncRunner : IParatextSyncRunner
7979 private readonly IDeltaUsxMapper _deltaUsxMapper ;
8080 private readonly IParatextNotesMapper _notesMapper ;
8181 private readonly ILogger < ParatextSyncRunner > _logger ;
82+ private readonly IExceptionHandler _exceptionHandler ;
8283 private readonly IGuidService _guidService ;
8384 private readonly IHubContext < NotificationHub , INotifier > _hubContext ;
8485
@@ -103,6 +104,7 @@ public ParatextSyncRunner(
103104 IParatextNotesMapper notesMapper ,
104105 IHubContext < NotificationHub , INotifier > hubContext ,
105106 ILogger < ParatextSyncRunner > logger ,
107+ IExceptionHandler exceptionHandler ,
106108 IGuidService guidService
107109 )
108110 {
@@ -118,6 +120,7 @@ IGuidService guidService
118120 _notesMapper = notesMapper ;
119121 _guidService = guidService ;
120122 _hubContext = hubContext ;
123+ _exceptionHandler = exceptionHandler ;
121124 _guidService = guidService ;
122125 }
123126
@@ -466,7 +469,8 @@ await UpdateBiblicalTermsAsync(
466469 }
467470 catch ( Exception e )
468471 {
469- if ( e is not TaskCanceledException )
472+ // OperationCanceledException is thrown by the MongoDB Driver when a sync is canceled
473+ if ( e is not TaskCanceledException and not OperationCanceledException )
470474 {
471475 StringBuilder additionalInformation = new StringBuilder ( ) ;
472476 foreach ( var key in e . Data . Keys )
@@ -479,6 +483,7 @@ await UpdateBiblicalTermsAsync(
479483 _syncMetrics . ErrorDetails = $ "{ e } { Environment . NewLine } { message } ";
480484 _logger . LogError ( e , message ) ;
481485 LogMetric ( message ) ;
486+ _exceptionHandler . ReportException ( e ) ;
482487 }
483488
484489 await CompleteSync ( false , canRollbackParatext , token ) ;
0 commit comments