Fixes #17181
Currently, we use assert
in RPC code to document logic and code assumptions. However, it seems a bit extreme to abort all of Bitcoin Core on an assert failure in one of the RPC threads. I suggest to replace all assert
s with a macro CHECK_NONFATAL(condition)
that throws a runtime error when the condition evaluates to false
. That runtime error will then be returned to the rpc caller and will include instructions to report the error to our issue tracker.