### 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_
AssertLockHeld(cs_wal);
    const uint256& txid = tx->GetHash();
    for (unsigned int i = 0; i < tx->vout.size(); ++i) {
        if (IsS(COutPoint(txid, i))) {
            return true;
        }
    }
    return false;
}
void CWalFlush()
{
    GetDatabase().Flush();
}
void CWalClose()
{
    GetDatabase().Close();
}
void CWalSyncMetaData(stdpair<TxSpendsiterator, TxSpendsiterator> range)
{
    // W
    // t
    // S
    int nMinOrderPos = stdnumeric_limits<int>max();
    const CWalTx* copyFrom = nullptr;
    for (TxSpendsiterator it = range.first; it != range.second; ++it) {
        const CWalTx* wtx = &mapWal.at(it->second);
        if (wtx->nOrderPos < nMinOrderPos) {
            nMinOrderPos = wtx->nOrderPos;
            copyFrom = wtx;
        }