After initial sync, each new block announcement is processed with handle_new_headers. When multiple peers announce the same block hash (e.g., 00000000000000206445…), we treat each announcement as a distinct header and assign consecutive heights: logs show the same hash recorded at heights 2377503, 2377504, 2377505. This misalignment causes downstream validation failures (ChainLocks compare against the wrong header). We should deduplicate post-sync header processing so repeated announcements of the same block do not advance the in-memory height multiple times.