diff --git a/Cargo.lock b/Cargo.lock
index 476f11fa0b92b8f9743ae26a2bc52a35672f2cfa..30051cc42849449b7b8ca5a398fb3860b9d1af3e 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3028,7 +3028,7 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
 
 [[package]]
 name = "duniter"
-version = "0.9.0"
+version = "0.9.1"
 dependencies = [
  "async-io",
  "bs58 0.5.1",
diff --git a/node/Cargo.toml b/node/Cargo.toml
index 2ac9b0b34f5ca82647d3d13b71c25eaf11cdc5c3..c7eb5ebf2cd88f305cd71be53364c0158df95013 100644
--- a/node/Cargo.toml
+++ b/node/Cargo.toml
@@ -7,7 +7,7 @@ homepage.workspace = true
 license.workspace = true
 name = "duniter"
 repository.workspace = true
-version = "0.9.0"
+version = "0.9.1"
 default-run = "duniter"
 
 [package.metadata.docs.rs]
diff --git a/node/src/service.rs b/node/src/service.rs
index 8946443088e3857c2f5c5c6feb4c9c43582919f9..fb14fb678a0179ed9744e9f03cda45ec8942059e 100644
--- a/node/src/service.rs
+++ b/node/src/service.rs
@@ -504,6 +504,7 @@ where
                                 >(
                                     &*client, parent, distance_dir, &babe_owner_keys.clone()
                                 )?;
+                            // in case of manual sealing, the distance is forced to succeed
                             Ok((timestamp, babe, distance))
                         }
                     },
@@ -549,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))
                     }