From 1a2333650a73b81ffaa7114f2c3c1b21617e2e1d Mon Sep 17 00:00:00 2001 From: lightclient <14004106+lightclient@users.noreply.github.com> Date: Wed, 27 May 2026 04:57:13 -0600 Subject: [PATCH] eth/catalyst: import new payload if at genesis, regardless of sync status (#32673) fixes #32672 This is kind of a band aid solution since it fixes the issue by bypassing the snap sync expectations of an empty db and attempting to import the new payload if we're at block 1. The next FCU will set the status to synced. Will continue looking to better understand how the above issue arises and find a more thorough solution. --------- Co-authored-by: Marius van der Wijden --- eth/catalyst/api.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index 5dc0deb324..71e92e315d 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -911,7 +911,11 @@ func (api *ConsensusAPI) newPayload(ctx context.Context, params engine.Executabl // into the database directly will conflict with the assumptions of snap sync // that it has an empty db that it can fill itself. if api.eth.Downloader().ConfigSyncMode() == ethconfig.SnapSync { - return api.delayPayloadImport(block), nil + // If the client is started at genesis of a test network with snap sync + // enabled, just try to import the block since there is nothing to sync. + if block.NumberU64() != 1 { + return api.delayPayloadImport(block), nil + } } if !api.eth.BlockChain().HasBlockAndState(block.ParentHash(), block.NumberU64()-1) { api.remoteBlocks.put(block.Hash(), block.Header())