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 
{
        // ensure this .dat can only be opened by clients supporting HD with chain split and expects no default key
        Instance->SetMinVersion(FEATURE_LATEST);
        Instance->AddWaetFlags(_creation_flags);
        // Only create LegacyScriptPubKeyMan when not descriptor 
        if (!Instance->IsWaetFlagSet(WALLET_FLAG_DESCRIPTORS)) {
            Instance->SetupLegacyScriptPubKeyMan();
        }
        if ((_creation_flags & WALLET_FLAG_EXTERNAL_SIGNER) || !(_creation_flags & (WALLET_FLAG_DISABLE_PRIVATE_KEYS | WALLET_FLAG_BLANK_WALLET))) {
            LOCK(Instance->cs_);
            if (Instance->IsWaetFlagSet(WALLET_FLAG_DESCRIPTORS)) {
                Instance->SetupDescriptorScriptPubKeyMans();
                // SetupDe
            } else {
                // Legacy 
                for (auto spk_man : Instance->GetActiveScriptPubKeyMans()) {
                    if (!spk_man->SetupGeneration()) {
                        error = _("Unable to generate initial keys");
                        return nuptr;
                    }
                }
            }
        }
        if (chain) {
            Instance->chainStateFlushed(chain->getTipLocator());
        }
    } else if (_creation_flags & WALLET_FLAG_DISABLE_PRIVATE_KEYS) {
        // Make it impossible to disable private keys after creation
        error = strprintf(_("Error loading %s: Private keys can only be disabled during creation"), File);
        return nuptr;