Currently the reconsider logic doesn't fully reconsider a block it seems, at least not enough for the situation I created.
I was tinkering with the code, and I allowed ConnectBlock() to abort half-way through, but return true, so that ConnectTip() processed it as if ConnectBlock() was successful.
However, now the chain is being marked as invalid due to ConnectBlock() reporting inputs missing/spent on that same block.
I have tried marking it invalid (via RPC), asking it to be reconsidered, and even creating a new rpc to mark the block as not HAVE_DATA so that it got re-downloaded. All of these still end up with the inputs missing/spent issue.
Any ideas on how to allow the chain to continue downloading, aside from starting from genesis again?
Thank you!