### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current behaviour

crash

### Expected behaviour

no crash

### Steps to reproduce

* Compile 79e8247ddb166f9b980f40249b7372a502402a4d
* Type `migratewallet`

### Relevant log output

```
wallet/scriptpubkeyman.cpp:1915: std::optional<MigrationData> wallet::LegacyScriptPubKeyMan::MigrateToDescriptor(): Assertion `IsMine(desc_spk) != ISMINE_NO' failed.
Aborted (core dumped)
```


### How did you obtain Bitcoin Core

Compiled from source

### What version of Bitcoin Core are you using?

current master

### Operating system and version

Linux

### Machine specifications

_No response_
RemoveUnnecessaryTransactions(psbtx, sighash_type);
    // Compe if every input is now signed
    compe = true;
    for (const auto& input  psbtx.inputs) {
        compe &= PSBTInputSigned(input);
    }
    return TransactionErrorOK;
}
SigningResult CWalSignMessage(const stdstring& message, const PKHash& pkhash, stdstring& str_sig) const
{
    SignatureData sigdata;
    CScript script_pub_key = GetScriptForDestination(pkhash);
    for (const auto& spk_man_pair  m_spk_managers) {
        if (spk_man_pair.second->CanProvide(script_pub_key, sigdata)) {
            LOCK(cs_wal);  // Descrip
            return spk_man_pair.second->SignMessage(message, pkhash, str_sig);
        }
    }
    return SigningResultPRIVATE_KEY_NOT_AVAILABLE;
}
OutputType CWalTransactionChangeType(const stdoptional<OutputType>& change_type, const stdvector<CRecipient>& vecSend) const
{
    //  -changetype is specified, always use that change type.
    if (change_type) {
        return *change_type;
    }
    // if m_default_address_type is legacy, use legacy address as change.
    if (m_default_address_type == OutputTypeLEGACY) {
        return OutputTypeLEGACY;
    }