diff --git a/core/chain_indexer.go b/core/chain_indexer.go
index c82febb54544d9f42fdd4cac10caf18aae554ab5..c0c2c4f7f945b34afdd3a13fbf5af4dbdc6fc7c6 100644
--- a/core/chain_indexer.go
+++ b/core/chain_indexer.go
@@ -418,7 +418,7 @@ func (c *ChainIndexer) processSection(section uint64, lastHead common.Hash) (com
 // actual canonical chain and rolls back reorged sections if necessary to ensure that stored
 // sections are all valid
 func (c *ChainIndexer) verifyLastHead() {
-	for c.storedSections > 0 {
+	for c.storedSections > 0 && c.storedSections > c.checkpointSections {
 		if c.SectionHead(c.storedSections-1) == rawdb.ReadCanonicalHash(c.chainDb, c.storedSections*c.sectionSize-1) {
 			return
 		}