Steps to reproduce on regtest:

```
converttopsbt 02000000000101ab73dba46508bacdb49a988ddd74bc9d39c9cb7e057af060ca8c6b6861e28e3c0300000000feffffff02b828d0b20000000017a914d1954862afd728fbb055149002958e1d1b9e1f0b8700ca9a3b0000000017a91442170ccb3441cff1723af9afab6f2553103e1d578702473044022077380c6e16496d9905aef120694c329be51522847cb5d53fa74b94698c95678d02202d32c46e0e17420a83dee830fefda7d40529182f5d82be47c2b49a7b83214ab50121026d483d6628dcc3ef6e3ab9ed4937c452c263c7e0ac80eb4be97426d5da8f640500000000
```
or 
```
converttopsbt 02000000000101ab73dba46508bacdb49a988ddd74bc9d39c9cb7e057af060ca8c6b6861e28e3c0300000000feffffff02b828d0b20000000017a914d1954862afd728fbb055149002958e1d1b9e1f0b8700ca9a3b0000000017a91442170ccb3441cff1723af9afab6f2553103e1d578702473044022077380c6e16496d9905aef120694c329be51522847cb5d53fa74b94698c95678d02202d32c46e0e17420a83dee830fefda7d40529182f5d82be47c2b49a7b83214ab50121026d483d6628dcc3ef6e3ab9ed4937c452c263c7e0ac80eb4be97426d5da8f640500000000 false
```

Further reading: #13738
if (options.exists("estimate_mode")) {
            if (options.exists("feeRate")) {
                throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify both estimate_mode and feeRate");
            }
            if (!FeeModeFromString(options["estimate_mode"].get_str(), coinControl.m_fee_mode)) {
                throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid estimate_mode parameter");
            }
        }
      }
    }
    if (tx.vout.size() == 0)
        throw JSONRPCError(RPC_INVALID_PARAMETER, "TX must have at least one output");
    if (change_position != -1 && (change_position < 0 || (unsigned int)change_position > tx.vout.size()))
        throw JSONRPCError(RPC_INVALID_PARAMETER, "changePosition out of bounds");
    for (unsigned int idx = 0; idx < subtractFeeFromOutputs.size(); idx++) {
        int pos = subtractFeeFromOutputs[idx].get_int();
        if (setSubtractFeeFromOutputs.count(pos))
            throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid parameter, duplicated position: %d", pos));
        if (pos < 0)
            throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid parameter, negative position: %d", pos));
        if (pos >= int(tx.vout.size()))
            throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid parameter, position too large: %d", pos));
        setSubtractFeeFromOutputs.insert(pos);
    }
    std::string strFailReason;
    if (!pwallet->FundTransaction(tx, fee_out, change_position, strFailReason, lockUnspents, setSubtractFeeFromOutputs, coinControl)) {
        throw JSONRPCError(RPC_WALLET_ERROR, strFailReason);
    }
}
static UniValue fundrawtransaction(const JSONRPCRequest& request)