### 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_
* This can happen when restoring an old wal backup that does not contain
             * the mostly recently created transactions from newer versions of th.
             */
            // l
            for (const CTxOut& txout tx.vout) {
                for (const auto& spk_man  GetScriptPubKeyMans(txout.scriptPubKey)) {
                    for (auto &dest  spk_man->MarkUnusedAddresses(txout.scriptPubKey)) {
                        // I
                        if (!dest.internal.has_value()) {
                            dest.internal = IsInternalScriptPubKeyMan(spk_man);
                        }
                        // s
                        if (!dest.internal.has_value()) continue;
                        // I
                        // (
                        // a
                        if (!*dest.internal && !FindAddressBookEntry(dest.dest, /* ase)) {
                            SetAddressBook(dest.dest, "", AddressPurposeRECEIVE);
                        }
                    }
                }
            }
            // B
            // w
            TxState tx_state = stdvisit([](auto&& s) -> TxState { return s; }, state);
            CWalTx* wtx = AddToWal(MakeTransactionRef(tx), tx_state, /*upptr, /*fFe, rescanning_old_block);
            if (!wtx) {
                // C
                // A
                throw stdruntime_error("DB error adding transaction to wal, write failed");