diff --git a/fork_choice_store/src/store.rs b/fork_choice_store/src/store.rs index 9b0984a0..e8c0b430 100644 --- a/fork_choice_store/src/store.rs +++ b/fork_choice_store/src/store.rs @@ -68,6 +68,7 @@ use crate::{ store_config::StoreConfig, supersets::MultiPhaseAggregateAndProofSets as AggregateAndProofSupersets, validations::validate_merge_block, + StateCacheError, }; /// [`Store`] from the Fork Choice specification. @@ -1756,7 +1757,16 @@ impl Store

{ return Ok(BlobSidecarAction::Ignore(true)); } - let state = state_fn()?; + let state = match state_fn() { + Ok(state) => state, + Err(error) => { + if let Some(StateCacheError::StateFarBehind { .. }) = error.downcast_ref() { + return Ok(BlobSidecarAction::DelayUntilSlot(blob_sidecar)); + } + + bail!(error); + } + }; // [REJECT] The proposer signature of blob_sidecar.signed_block_header, is valid with respect to the block_header.proposer_index pubkey. SingleVerifier.verify_singular(