diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py
index 07537456a6fd4b0f039f24c8acf56ca309937b61..294cb96d2d45e28fb89e9289eb4b878ed09dba59 100644
--- a/addons/mrp/models/mrp_production.py
+++ b/addons/mrp/models/mrp_production.py
@@ -1376,7 +1376,8 @@ class MrpProduction(models.Model):
                 workorder.duration_expected = workorder.duration_expected * ratio
             for workorder in backorder_mo.workorder_ids:
                 workorder.duration_expected = workorder.duration_expected * (1 - ratio)
-        backorders.action_confirm()
+        # Confirm only productions with remaining components
+        backorders.filtered(lambda mo: mo.move_raw_ids).action_confirm()
 
         # Remove the serial move line without reserved quantity. Post inventory will assigned all the non done moves
         # So those move lines are duplicated.