Steps to reproduce:

* Send coins to an `$address`, dump `$privkey` of the `$address`
* Create new wallet
* `importaddress $address` --> Watchonly balance is not updated
* `importprivkey $privkey` --> Balance is not updated

Needs a restart to get fixed. See also #11477 
LOCK(desc_spk_man->cs_desc_man);
        const auto& wallet_descriptor = desc_spk_man->GetWalletDescriptor();
        std::string descriptor;
        if (!desc_spk_man->GetDescriptorString(descriptor, priv)) {
            throw JSONRPCError(RPC_WALLET_ERROR, "Can't get descriptor string.");
        }
        spk.pushKV("desc", descriptor);
        spk.pushKV("timestamp", wallet_descriptor.creation_time);
        spk.pushKV("active", active_spk_mans.count(desc_spk_man) != 0);
        const auto internal = wallet->IsInternalScriptPubKeyMan(desc_spk_man);
        if (internal.has_value()) {
            spk.pushKV("internal", *internal);
        }
        if (wallet_descriptor.descriptor->IsRange()) {
            UniValue range(UniValue::VARR);
            range.push_back(wallet_descriptor.range_start);
            range.push_back(wallet_descriptor.range_end - 1);
            spk.pushKV("range", range);
            spk.pushKV("next", wallet_descriptor.next_index);
        }
        descriptors.push_back(spk);
    }
    UniValue response(UniValue::VOBJ);
    response.pushKV("wallet_name", wallet->GetName());
    response.pushKV("descriptors", descriptors);
    return response;
},
    };
}
RPCHelpMan backupwallet()