diff --git a/consensus/state_processing/src/per_epoch_processing/altair/inactivity_updates.rs b/consensus/state_processing/src/per_epoch_processing/altair/inactivity_updates.rs index 8d441be70d..f568f5fc98 100644 --- a/consensus/state_processing/src/per_epoch_processing/altair/inactivity_updates.rs +++ b/consensus/state_processing/src/per_epoch_processing/altair/inactivity_updates.rs @@ -20,6 +20,10 @@ pub fn process_inactivity_updates( // Fast path: inactivity scores have already been pre-computed. if let Some(inactivity_score_updates) = participation_cache.inactivity_score_updates.take() { + // We need to flush the existing inactivity scores in case tree hashing hasn't happened in + // a long time (e.g. during state reconstruction). + // FIXME(sproul): re-think this + state.inactivity_scores_mut()?.apply_updates()?; state .inactivity_scores_mut()? .bulk_update(inactivity_score_updates)?;