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)) }