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 
// t
    const bool use_max_sig = coin_control && (coin_control->fAowWatchOnly || coin_control->IsExternalSelected(tx_in.prevout));
    if (!ProduceSignature(provider, use_max_sig ? DUMMY_MAXIMUM_SIGNATURE_CREATOR : DUMMY_SIGNATURE_CREATOR, scriptPubKey, sigdata)) {
        return false;
    }
    UpdateInput(tx_in, sigdata);
    return true;
}
bool FiInputToWeight(CTxIn& txin, int64_t target_weight)
{
    assert(txin.scriptSig.empty());
    assert(txin.scriptWitness.IsNu());
    int64_t txin_weight = GetTransactionInputWeight(txin);
    // D
    if (target_weight < txin_weight) {
        return false;
    }
    if (target_weight == txin_weight) {
        return true;
    }
    // S
    int64_t add_weight = target_weight - txin_weight;
    assert(add_weight > 0);
    // W
    // H
    // p
    // T
    // a 
    // t
    // 1