Only tried this with a legacy wallet.
Steps:
- Create 3 legacy wallets
- Call getnewaddress and getaddressinfo, note the public key (a, b, c)
- On each of the wallets, call
addmultisigaddress 2 [a,b,c] "Multisig" legacy
- Copy the inferred descriptor returned by any of the previous calls, drop the origin info
- Create a watch-only descriptor wallet and import the descriptor
- Send coins to it, wait for confirmation
- Create a PSBT in the GUI by sending the funds elsewhere (without a change address)
- Open this PSBT in wallet a, b or c and try to sign it
- Notice the error message: “Could not sign any more inputs”
- Try instead to sign via RPC with walletprocesspsbt using one of the wallets
- Copy the processed result and open it in one of the other two wallets
- Now it happily signs it, because the 2nd signature makes it complete
cc @achow101