diff --git a/beacon-chain/blockchain/head.go b/beacon-chain/blockchain/head.go index 857913717e6..07883bc15e3 100644 --- a/beacon-chain/blockchain/head.go +++ b/beacon-chain/blockchain/head.go @@ -42,7 +42,13 @@ func (s *Service) updateHead(ctx context.Context, balances []uint64) error { // Get head from the fork choice service. f := s.finalizedCheckpt j := s.justifiedCheckpt - headRoot, err := s.forkChoiceStore.Head(ctx, j.Epoch, bytesutil.ToBytes32(j.Root), balances, f.Epoch) + // To get head before the first justified epoch, the fork choice will start with genesis root + // instead of zero hashes. + headStartRoot := bytesutil.ToBytes32(j.Root) + if headStartRoot == params.BeaconConfig().ZeroHash { + headStartRoot = s.genesisRoot + } + headRoot, err := s.forkChoiceStore.Head(ctx, j.Epoch, headStartRoot, balances, f.Epoch) if err != nil { return err }