The block filter index may be left in a corrupted state, preventing the node from restarting (without reindexing), after a series of specific events:
- Clean shutdown
- Restart combined with an immediate reorg of the previously stored best chain tip
- Unclean shutdown after reorg takes place (before chainstate flush)
- Restart, leading to the following
0[ 62.579] [ node2] [inf] 2026-01-10T16:58:52Z [all:error] previous block header belongs to unexpected block 44ee2f358de32719802fe11d3985af7a0f9077b90ee5ca16c42f7278a8d89a50; expected 532c10b42179b4f3f5a41f9990108a63bcd7021dd02ba6997f5ff3375d297676
1[ 62.579] [ node2] [inf] 2026-01-10T16:58:52Z [all:error] Cannot read last block filter header; index may be corrupted
See attached debug log for an example of this happening.
This was found with a test running on Antithesis.