This differs from behaviour of `importaddress` where it works.
```
$ bitcoin-cli importaddress "<address>" "<label>" false
```
vs
```
$ bitcoin-cli importmulti '[{ "scriptPubKey": { "address": "<address>" }, "timestamp":0, "label": "<label>", "watchonly": true }]' '{ "rescan": false }'
error code: -13
error message:
Error: Please enter the wallet passphrase with walletpassphrase first.
```
CHECK_NONFATAL(key.VerifyPubKey(pubkey));
        CKeyID vchAddress = pubkey.GetID();
        {
            pwallet->MarkDirty();
            
            
            
            for (const auto& dest : GetAllDestinationsForKey(pubkey)) {
                if (!request.params[1].isNull() || !pwallet->FindAddressBookEntry(dest)) {
                    pwallet->SetAddressBook(dest, strLabel, "receive");
                }
            }
            
            if (!pwallet->ImportPrivKeys({{vchAddress, key}}, 1)) {
                throw JSONRPCError(RPC_WALLET_ERROR, "Error adding key to wallet");
            }
            
            if (pubkey.IsCompressed()) {
                pwallet->ImportScripts({GetScriptForDestination(WitnessV0KeyHash(vchAddress))}, 0 );
            }
        }
    }
    if (fRescan) {
        RescanWallet(*pwallet, reserver);
    }
    return UniValue::VNULL;
},
    };
}
RPCHelpMan importaddress()