My steps were, start node with only a peer, no inbound or outbound connections.
- sync headers
- stop node when it starts downloading blocks
- enable inbound and outbound connections
- get parallel block downloads
- When blocks are done, we see the error
I stepped through in a debugger and it looked like at least one thread was dealing with a chain reorganization. Any protocol_header_in instances in other threads, upon startup, requested a particular header, which is then not found and the error is printed.