diff --git a/modules/ve-mw-collab/ve.init.mw.CollabTarget.init.js b/modules/ve-mw-collab/ve.init.mw.CollabTarget.init.js index 5919f3c18e..b7df7a2d0a 100644 --- a/modules/ve-mw-collab/ve.init.mw.CollabTarget.init.js +++ b/modules/ve-mw-collab/ve.init.mw.CollabTarget.init.js @@ -92,7 +92,7 @@ dummySurface.createProgress( progressDeferred.promise(), ve.msg( 'visualeditor-rebase-client-connecting' ), true ); - surfaceModel.synchronizer.once( 'initDoc', function () { + surfaceModel.synchronizer.once( 'initDoc', function ( error ) { var initPromise; progressDeferred.resolve(); @@ -102,6 +102,18 @@ target.clearSurfaces(); // Don't add the surface until the history has been applied target.addSurface( surfaceModel ); + if ( error ) { + OO.ui.alert( + $( '
' ).append( + ve.htmlMsg( 'visualeditor-corrupted-document-error', $( '
' ).text( error.stack ) ) + ), + { title: ve.msg( 'visualeditor-corrupted-document-title' ), size: 'large' } + ).then( function () { + // eslint-disable-next-line no-use-before-define + showForm( true ); + } ); + return; + } target.once( 'surfaceReady', function () { initPromise.then( function () { surfaceModel.selectFirstContentOffset(); @@ -184,7 +196,7 @@ } ).fail( function ( err ) { mw.log.error( err ); // eslint-disable-next-line no-use-before-define - showForm(); + showForm( true ); } ); }