diff --git a/src/vs/workbench/api/electron-browser/mainThreadSaveParticipant.ts b/src/vs/workbench/api/electron-browser/mainThreadSaveParticipant.ts index 4439085c120..180064b7c85 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadSaveParticipant.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadSaveParticipant.ts @@ -321,7 +321,10 @@ class CodeActionOnParticipant implements ISaveParticipant { return new Promise((resolve, reject) => { setTimeout(() => reject(localize('codeActionsOnSave.didTimeout', "Aborted codeActionsOnSave after {0}ms", timeout)), timeout); this.getActionsToRun(model, codeActionsOnSave).then(resolve); - }).then(actionsToRun => this.applyCodeActions(actionsToRun)); + }).then(actionsToRun => { + // Failure to apply a code action should not block other on save actions + return this.applyCodeActions(actionsToRun).catch(() => undefined); + }); } private async applyCodeActions(actionsToRun: CodeAction[]) {