diff --git a/app/modules/prover/lib/blockProver.ts b/app/modules/prover/lib/blockProver.ts
index 32d5699ecc014e8ec690c6b5b98722d43b864a6a..87a666758707516985bb96bdf6cac2d504582145 100644
--- a/app/modules/prover/lib/blockProver.ts
+++ b/app/modules/prover/lib/blockProver.ts
@@ -67,8 +67,8 @@ export class WorkerFarm {
   /**
    * Eventually stops the engine PoW if one was computing
    */
-  stopPoW() {
-    this.stopPromise = querablep(this.theEngine.cancel())
+  async stopPoW() {
+    this.stopPromise = querablep(Promise.resolve(this.theEngine.cancel()))
     return this.stopPromise;
   }
 
@@ -133,10 +133,10 @@ export class BlockProver {
     if (this.workerFarmPromise) {
       let farm = await this.getWorker();
       if (farm.isComputing() && !farm.isStopping()) {
-        await farm.stopPoW()
+        Promise.resolve(farm.stopPoW())
       } else {
         // We force the stop anyway, just to be sure
-        await farm.stopPoW()
+        Promise.resolve(farm.stopPoW())
       }
       if (this.waitResolve) {
         this.waitResolve();
diff --git a/app/modules/prover/lib/engine.ts b/app/modules/prover/lib/engine.ts
index 0f42ec11ea6b866fe929f0d690232134fd4cea97..eaf2e6b2d0f9b2f12e3252768676736da77e76f7 100644
--- a/app/modules/prover/lib/engine.ts
+++ b/app/modules/prover/lib/engine.ts
@@ -33,11 +33,11 @@ export class PowEngine {
   }
 
   async prove(stuff:any) {
-    this.cluster.cancelWork()
+    Promise.all([this.cluster.cancelWork()])
     return await this.cluster.proveByWorkers(stuff)
   }
 
-  cancel() {
+  async cancel() {
     return this.cluster.cancelWork()
   }