diff --git a/node/src/service.rs b/node/src/service.rs
index b64b952d2bb4713eca39e2720100c3ba08ead91b..fb14fb678a0179ed9744e9f03cda45ec8942059e 100644
--- a/node/src/service.rs
+++ b/node/src/service.rs
@@ -503,15 +503,8 @@ where
                                     FullBackend,
                                 >(
                                     &*client, parent, distance_dir, &babe_owner_keys.clone()
-                                );
-                            // provides fallback when distance inherent data provider crashes
-                            let distance = match distance {
-                                Ok(distance) => distance,
-                                Err(e) => {
-                                    log::warn!("{:?}", e);
-                                    sp_distance::InherentDataProvider::new(None)
-                                }
-                            };
+                                )?;
+                            // in case of manual sealing, the distance is forced to succeed
                             Ok((timestamp, babe, distance))
                         }
                     },
@@ -557,7 +550,17 @@ where
                             FullBackend,
                         >(
                             &*client, parent, distance_dir, &babe_owner_keys.clone()
-                        )?;
+                        );
+
+                        // provides fallback when distance inherent data provider crashes
+                        // (only when sealing is not manual)
+                        let distance = match distance {
+                            Ok(distance) => distance,
+                            Err(e) => {
+                                log::warn!("{:?}", e);
+                                sp_distance::InherentDataProvider::new(None)
+                            }
+                        };
 
                         Ok((slot, timestamp, storage_proof, distance))
                     }