@@ -337,7 +337,7 @@ export class UserDataSyncWorkbenchService extends Disposable implements IUserDat
337337 await this . waitForActiveSyncViews ( ) ;
338338 await this . viewsService . openView ( MANUAL_SYNC_VIEW_ID ) ;
339339
340- const completed = await Event . toPromise ( this . userDataSyncPreview . onDidCompleteManualSync ) ;
340+ const error = await Event . toPromise ( this . userDataSyncPreview . onDidCompleteManualSync ) ;
341341 this . userDataSyncPreview . unsetManualSyncPreview ( ) ;
342342
343343 this . manualSyncViewEnablementContext . set ( false ) ;
@@ -348,8 +348,8 @@ export class UserDataSyncWorkbenchService extends Disposable implements IUserDat
348348 this . viewsService . closeViewContainer ( viewContainer ! . id ) ;
349349 }
350350
351- if ( ! completed ) {
352- throw canceled ( ) ;
351+ if ( error ) {
352+ throw error ;
353353 }
354354 }
355355
@@ -567,7 +567,7 @@ class UserDataSyncPreview extends Disposable implements IUserDataSyncPreview {
567567 private _onDidChangeConflicts = this . _register ( new Emitter < ReadonlyArray < IUserDataSyncResource > > ( ) ) ;
568568 readonly onDidChangeConflicts = this . _onDidChangeConflicts . event ;
569569
570- private _onDidCompleteManualSync = this . _register ( new Emitter < boolean > ( ) ) ;
570+ private _onDidCompleteManualSync = this . _register ( new Emitter < Error | undefined > ( ) ) ;
571571 readonly onDidCompleteManualSync = this . _onDidCompleteManualSync . event ;
572572 private manualSync : { preview : [ SyncResource , ISyncResourcePreview ] [ ] , task : IManualSyncTask , disposables : DisposableStore } | undefined ;
573573
@@ -623,10 +623,16 @@ class UserDataSyncPreview extends Disposable implements IUserDataSyncPreview {
623623 throw new Error ( 'Can apply only while syncing manually' ) ;
624624 }
625625
626- const syncPreview = await this . manualSync . task . apply ( ) ;
627- this . updatePreview ( syncPreview ) ;
628- if ( ! this . _resources . length ) {
629- this . _onDidCompleteManualSync . fire ( true ) ;
626+ try {
627+ const syncPreview = await this . manualSync . task . apply ( ) ;
628+ this . updatePreview ( syncPreview ) ;
629+ if ( ! this . _resources . length ) {
630+ this . _onDidCompleteManualSync . fire ( undefined ) ;
631+ }
632+ } catch ( error ) {
633+ await this . manualSync . task . stop ( ) ;
634+ this . updatePreview ( [ ] ) ;
635+ this . _onDidCompleteManualSync . fire ( error ) ;
630636 }
631637 }
632638
@@ -636,7 +642,7 @@ class UserDataSyncPreview extends Disposable implements IUserDataSyncPreview {
636642 }
637643 await this . manualSync . task . stop ( ) ;
638644 this . updatePreview ( [ ] ) ;
639- this . _onDidCompleteManualSync . fire ( false ) ;
645+ this . _onDidCompleteManualSync . fire ( canceled ( ) ) ;
640646 }
641647
642648 async pull ( ) : Promise < void > {
0 commit comments