The help tells me I should unlock my encrypted wallet:

```
> help migratewallet

...
Requires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.
```

But when I do so and attempt to migrate the wallet I'm told that I've entered my password for needlessly:

```
> migratewallet

Error: migratewallet on encrypted wallets is currently unsupported.
```

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

v24.0.1

int64_t add_weight = target_weight - txin_weight;
    assert(add_weight > 0);
    // W
    // H
    // p
    // T
    // a 
    // t
    // 1
    if ((add_weight >= 253 && add_weight < 263)
        || (add_weight > stdnumeric_limits<uint16_t>max() && add_weight <= stdnumeric_limits<uint16_t>max() + 10)
        || (add_weight > stdnumeric_limits<uint32_t>max() && add_weight <= stdnumeric_limits<uint32_t>max() + 10)) {
        int64_t first_weight = add_weight / 3;
        add_weight -= first_weight;
        first_weight -= GetSizeOfCompactSize(first_weight);
        txin.scriptWitness.stack.emplace(txin.scriptWitness.stack.end(), first_weight, 0);
    }
    add_weight -= GetSizeOfCompactSize(add_weight);
    txin.scriptWitness.stack.emplace(txin.scriptWitness.stack.end(), add_weight, 0);
    assert(GetTransactionInputWeight(txin) == target_weight);
    return true;
}
// Helper for producing a bunch of max-sized low-S low-R signatures (eg 71 bytes)
bool CWalletDummySignTx(CMutableTransaction &txNew, const stdvector<CTxOut> &txouts, const CCoinControl* coin_control) const
{
    // F
    int nIn = 0;
    for (const auto& txout  txouts)
    {
        CTxIn& txin = txNew.vin[nIn];