During testing, a completely synchronized 0.8.3 node was updated to 0.22.0 using static release binaries. As expected, this faulted with an error describing that to continue a -reindex would need to be used to account for the missing witness data post-segwit
Opened LevelDB successfully
Using obfuscation key for /root/.bitcoin/chainstate: 0000000000000000
Upgrading utxo-set database...
[0%]...[10%]...[20%]...[30%]...[40%]...[50%]...[60%]...[70%]...[80%]...[90%]...[100%]...[DONE].
Loaded best chain: hashBestChain=00000000000000000009c8231207a2e13e246db331dc8c536454c37683d3ccdb height=715165 date=2021-12-21T23:08:50Z progress=0.997369
: Witness data for blocks after height 481824 requires validation. Please restart with -reindex..
Please restart with -reindex or -reindex-chainstate to recover.
: Witness data for blocks after height 481824 requires validation. Please restart with -reindex..
Please restart with -reindex or -reindex-chainstate to recover.
Aborted block database rebuild. Exiting.
Restarting 0.22 with bitcoind -reindex resulted in apparent consensus failure, with the node being unable to make forward progress and failing each block on disk.
ERROR: AcceptBlock: bad-witness-nonce-size, ContextualCheckBlock : invalid witness reserved value size
Restarting the node again has the software seemingly making forward progress with reindexing past height 310k without further issue or AcceptBlock() failure. There is no viable snapshot of my 0.8.3 data pre-upgrade so this can't be easily replicated, and is such an absurd situation as to almost certainly be unique, however it seemed worthy of reporting in case this is indicative of some other concerns.