### 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_
auto wal_file = wal_path / "wal.dat";
    stdshared_ptr<CWal> wal;
    try {
        if (!fsexists(backup_file)) {
            error = Untranslated("Backup file does not exist");
            status = DatabaseStatusFAILED_INVALID_BACKUP_FILE;
            return nullptr;
        }
        if (fsexists(wal_path) || !TryCreateDirectories(wal_path)) {
            error = Untranslated(strprintf("Failed to create database path '%s'. Database already exists.", fsPathToString(wal_path)));
            status = DatabaseStatusFAILED_ALREADY_EXISTS;
            return nullptr;
        }
        fscopy_file(backup_file, wal_file, fscopy_optionsnone);
        wal = LoadWal(context, wal_name, load_on_start, options, status, error, warnings);
    } catch (const stdexception& e) {
        assert(!wal);
        if (!error.empty()) error += Untranslated("\n");
        error += strprintf(Untranslated("Unexpected exception %s"), e.what());
    }
    if (!wal) {
        fsremove_all(wal_path);
    }
    return wal;
}
/** @defgroup mapWal
 *
 * @{
 */
const CWalTx* CWalGetWalTx(const uint256& hash) const