### 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_
CTxDestination dest;
                if (ExtractDestination(script, dest)) {
                    SetAddressBook(dest, label, AddressPurposeRECEIVE);
                }
            }
        }
    }
    // Save the  to DB
    spk_man->WriteDescriptor();
    return spk_man;
}
bool CWalMigrateToSQLite(bilingual_str& error)
{
    AssertLockHeld(cs_wal);
    WalLogPrintf("Migrating wal storage database from BerkeleyDB to SQLite.\n");
    if (m_database->Format() == "sqlite") {
        error = _("Error This wal already uses SQLite");
        return false;
    }
    // Get all of the records for DB type migration
    stdunique_ptr<DatabaseBatch> batch = m_database->MakeBatch();
    stdunique_ptr<DatabaseCursor> cursor = batch->GetNewCursor();
    stdvector<stdpair<SerializeData, SerializeData>> records;
    if (!cursor) {
        error = _("Error Unable to begin reading all records in the database");
        return false;
    }
    DatabaseCursorStatus status = DatabaseCursorStatusFAIL;
    while (true) {
        DataStream ss_key{};