WalletConnect +Atomic Transactions +logicsig

Trying to do an atomic transaction consisting of:
logicsig tx
user-signed tx via walletconnect
logicsig tx

The walletconnect docs say to return “signers: ” for those transactions to be ignored, ie. 1 & 3

Walletconnect allows me to sign, returns a list of txs as you’d expect, with the txn: ‘xxxx’ for each tx + “senders:” for 1 & 3.

The above is passed to “signWalletTransactions” but results in:
“The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type object”.

The underlying mechanism for my walletconnect integration works fine for a variety of other atomic transactions, but not this one where there are transactions to ignore.

So, fundamentally, is the above scenario theoretically possible? If so, any clues how to get this working …

WalletConnect should work with signers: [].
Can you show an example of what you sent?
(console.log the JSON object sent)

It seems Walletconnect returns an empty array entry for those that were submitted with signers: .
With the additional check bolded below, this all seems to work, including having logicsigs with user-signed sigs in an atomic transaction - pretty cool.

// signedTxns contains empty rows where any submitted txs (in request) had signers:[].
signedTxns = await this.connector.sendCustomRequest(request);

// Be sure to have a populated row before base64'ing!
let rawSignedTxns = signedTxns && signedTxns.map(signedTxn => **signedTxn** && Buffer.from(signedTxn, "base64"));

Some code to paint the picture:
atomicTxns.push(txn1);  // Logicsig
atomicTxns.push(txn2);  // User Wallet Sig
atomicTxns.push(txn3);  // LogicSig

let atomicGroup = algosdk.assignGroupID(atomicTxns);

// then "walletize" the transactions into "txlist" where 1 & 3 have senders: []
// now sequence the signed txns into a signedTxns array
signedTxn1 = algosdk.signLogicSigTransaction(txn1, smartSig);

// txlist contains all transactions, where txn1 & txn3 have senders: []
// signWalletTransactions (my code) is where txns are sent off for signing
// i.e. sendCustomRequest(request);

signedList = await walletInstance.signWalletTransactions(txlist);
signedTxns.push(signedList[1]); // the row that is not empty, i.e. txn2

signedTxn3 = algosdk.signLogicSigTransaction(txn3, smartSig);

let sentTxn = await algoClient.sendRawTransaction(signedTxns).do();