<!-- This issue tracker is only for technical issues related to Bitcoin Core.

General bitcoin questions and/or support requests are best directed to the Bitcoin StackExchange at https://bitcoin.stackexchange.com.

For reporting security issues, please read instructions at https://bitcoincore.org/en/contact/.

If the node is "stuck" during sync or giving "block checksum mismatch" errors, please ensure your hardware is stable by running memtest and observe CPU temperature with a load-test tool such as linpack before creating an issue! -->

<!-- Describe the issue -->

**Expected behavior**

When I make a json-rpc call to `getblock` with:

```json
{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "getblock",
    "params": ["37351c7060ec3a149af1bbc9ebcc436c0ee652f96559ef1fe9bc45d11000f061", "2"]
}
```
An error should be returned with the [expected data type](https://developer.bitcoin.org/reference/rpc/getblock.html#argument-2-verbosity)(number) for `verbosity`.
<!--- What behavior did you expect? -->

**Actual behavior**

<!--- What was the actual behavior (provide screenshots if the issue is GUI-related)? -->

Received `"message": "JSON value is not a boolean as expected"` as an error message which is not the [expected data type](number) (https://developer.bitcoin.org/reference/rpc/getblock.html#argument-2-verbosity) for `verbosity`

**To reproduce**

Use this curl on a node

```
curl --location --request POST "127.0.0.1:8332" \
--header "Content-Type: application/json" \
--header "Authorization: Basic YOUR_AUTH" \
--data "{
    \"jsonrpc\": \"1.0\",
    \"id\": \"curltest\",
    \"method\": \"getblock\",
    \"params\": [\"37351c7060ec3a149af1bbc9ebcc436c0ee652f96559ef1fe9bc45d11000f061\", \"2\"]
}"
```

**System information**
* self-compiled

<!-- What version of Bitcoin Core are you using, where did you get it (website, self-compiled, etc)? -->

<!-- What type of machine are you observing the error on (OS/CPU and disk type)? -->

<!-- GUI-related issue? What is your operating system and its version? If Linux, what is your desktop environment and graphical shell? -->

<!-- Any extra information that might be useful in the debugging process. -->
<!--- This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred. -->

{
    ChainstateManager& chainman = EnsureAnyChainman(request.context);
    LOCK(cs_main);
    CChainState& active_chainstate = chainman.ActiveChainstate();
    const CBlockIndex* tip = active_chainstate.m_chain.Tip();
    CHECK_NONFATAL(tip);
    const int height = tip->nHeight;
    UniValue obj(UniValue::VOBJ);
    obj.pushKV("chain",                 Params().NetworkIDString());
    obj.pushKV("blocks",                height);
    obj.pushKV("headers",               pindexBestHeader ? pindexBestHeader->nHeight : -1);
    obj.pushKV("bestblockhash",         tip->GetBlockHash().GetHex());
    obj.pushKV("difficulty",            (double)GetDifficulty(tip));
    obj.pushKV("mediantime",            (int64_t)tip->GetMedianTimePast());
    obj.pushKV("verificationprogress",  GuessVerificationProgress(Params().TxData(), tip));
    obj.pushKV("initialblockdownload",  active_chainstate.IsInitialBlockDownload());
    obj.pushKV("chainwork",             tip->nChainWork.GetHex());
    obj.pushKV("size_on_disk",          CalculateCurrentUsage());
    obj.pushKV("pruned",                fPruneMode);
    if (fPruneMode) {
        const CBlockIndex* block = tip;
        CHECK_NONFATAL(block);
        while (block->pprev && (block->pprev->nStatus & BLOCK_HAVE_DATA)) {
            block = block->pprev;
        }
        obj.pushKV("pruneheight",        block->nHeight);
        
        bool automatic_pruning = (gArgs.GetArg("-prune", 0) != 1);
        obj.pushKV("automatic_pruning",  automatic_pruning);
        if (automatic_pruning) {