Following the merge of https://github.com/bitcoin/bitcoin/pull/23083, we'll throw a non-fatal error at runtime if the documentation for an RPC is incorrect. This behaviour has found numerous issues over a very short period (of the PR being opened). However, this is not something that we want in production / release builds, instead, we want the ability to have it enabled in the CI and when running tests. A runtime option could be added, which controls this behaviour (disabled by default).

#### Useful skills:

- C++
- Understanding of Bitcoin Core's initialization sequence
- Understanding of Bitcoin Core's RPC interface

#### Want to work on this issue?

For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request.

strLoadError = _("Error opening block database");
                    break;
                }
            } else {
                fLoaded = true;
                LogPrintf(" block index %15dms\n", GetTimeMillis() - load_block_index_start_time);
            }
        }
        if (!fLoaded && !ShutdownRequested()) {
             fir
            if (!fReset) {
                bool fRet = uiInterface.ThreadSafeQuestion(
                    strLoadError + Untranslated(".\n\n") + _("Do you want to rebuild the block database now?"),
                    strLoadError.original + ".\nPlease restart with -reindex or -reindex-chainstate to recover.",
                    "", CClientUIInterface::MSG_ERROR | CClientUIInterface::BTN_ABORT);
                if (fRet) {
                    fReindex = true;
                    AbortShutdown();
                } else {
                    LogPrintf("Aborted block database rebuild. Exiting.\n");
                    return false;
                }
            } else {
                return InitError(strLoadError);
            }
        }
    }
     As LoadBlockIndex can take several minutes, it's possible the user
     requested to kill the GUI during the last operation. If so, exit.
     As the program has not fully started yet, Shutdown() is possibly overkill.