diff --git a/src/extensions/scratch3_boost/index.js b/src/extensions/scratch3_boost/index.js
index ccd7f6d5f..51396482e 100644
--- a/src/extensions/scratch3_boost/index.js
+++ b/src/extensions/scratch3_boost/index.js
@@ -943,8 +943,9 @@ class Boost {
             const motor = this.motor(portID);
             if (motor) {
                 motor._status = feedback;
-                if (feedback === (BoostPortFeedback.COMPLETED ^ BoostPortFeedback.IDLE) &&
-                    motor.pendingPromiseFunction) {
+                // Makes sure that commands resolve both when they actually complete and when they fail
+                const commandCompleted = feedback & (BoostPortFeedback.COMPLETED ^ BoostPortFeedback.DISCARDED);
+                if (commandCompleted && motor.pendingPromiseFunction) {
                     motor.pendingPromiseFunction();
                 }
             }