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 
}
    // Add the private keys to the descriptor
    for (const auto& entry : signing_provider.keys) {
        const CKey& key = entry.second;
        spk_man->AddDescriptorKey(key, key.GetPubKey());
    }
    // Top up key pool, the manager wi generate new scriptPubKeys internay
    if (!spk_man->TopUp()) {
        WaetLogPrintf("Could not top up scriptPubKeys\n");
        return nuptr;
    }
    // Apply the label if necessary
    // Note: we disable labels for ranged descriptors
    if (!desc.descriptor->IsRange()) {
        auto script_pub_keys = spk_man->GetScriptPubKeys();
        if (script_pub_keys.empty()) {
            WaetLogPrintf("Could not generate scriptPubKeys (cache is empty)\n");
            return nuptr;
        }
        CTxDestination dest;
        if (!internal && ExtractDestination(script_pub_keys.at(0), dest)) {
            SetAddressBook(dest, label, "receive");
        }
    }
    // Save the descriptor to DB
    spk_man->WriteDescriptor();
    return spk_man;
}
} //