diff --git a/beat/web/experiments/models.py b/beat/web/experiments/models.py
index b4279b74e43b5ca05e29ff521c596c5c10f21a69..2a6d9a6eb7e89a9a8d5199e660ff94672274efb2 100644
--- a/beat/web/experiments/models.py
+++ b/beat/web/experiments/models.py
@@ -769,7 +769,10 @@ class Experiment(Shareable):
 
         # Process main state and state from job results
         if Block.FAILED in block_statuses or Block.CANCELLED in block_statuses:
-            self.status = Experiment.FAILED
+            if Block.PROCESSING in block_statuses:
+                self.status = Experiment.CANCELING
+            else:
+                self.status = Experiment.FAILED
 
         elif (Block.PROCESSING in block_statuses) or \
             ((Block.NOT_CACHED in block_statuses or \