diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index e76c258e0c..717f9e41f2 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -3257,18 +3257,10 @@ impl BeaconChain { error: BlockError::BeaconChainError(Box::new(e.into())), }; } - if let Err(e) = self - .canonical_head - .fork_choice_write_lock() - .on_valid_payload_envelope_received(block_root) - { - return ChainSegmentResult::Failed { - imported_blocks, - error: BlockError::BeaconChainError(Box::new( - BeaconChainError::ForkChoiceError(e), - )), - }; - } + // Note: we do NOT call on_valid_payload_envelope_received here + // because the block hasn't been added to fork choice yet (that + // happens in process_block below). The fork choice update is + // handled by import_envelope_from_range_sync after process_block. } match self diff --git a/beacon_node/network/src/sync/backfill_sync/mod.rs b/beacon_node/network/src/sync/backfill_sync/mod.rs index 0f80138d24..c690d5e584 100644 --- a/beacon_node/network/src/sync/backfill_sync/mod.rs +++ b/beacon_node/network/src/sync/backfill_sync/mod.rs @@ -215,6 +215,11 @@ impl BackFillSync { &mut self, network: &mut SyncNetworkContext, ) -> Result { + // Skip backfill sync for GLOaS — not yet implemented for this fork. + if self.beacon_chain.spec.gloas_fork_epoch.is_some_and(|e| e != Epoch::max_value()) { + return Ok(SyncStart::NotSyncing); + } + match self.state() { BackFillState::Syncing => {} // already syncing ignore. BackFillState::Paused => {