Msgpack decode error with multisig transaction with Javascript SDK

I am sending a multisig transaction but get an error when I try posting that to the chain with the error

msgpack decode error [pos 1]: only encoded map or array can be decoded into a struct

I am not doing any encoding and I get the transaction ID after signing it but submission to the chain then returns a 400 error code with the message above.

Below is a sample transaction details.


Can you provide the code that generates the error?

PS: You can write the code between triple backquotes to make it look nicer. Example:
const example = 5;
is displayed as:

const example = 5;

Here is the code

let txn = {
“to”: PayoutRecipient[0],
“fee”: getParams.fee,
“amount”: amountToPay,
“firstRound”: getParams[“last-round”],
“lastRound”: getParams[“last-round”] + 1000,
“genesisID”: getParams[“genesis-id”],
“genesisHash”: getParams[“genesis-hash”],
“note”: new Uint8Array(“payment”),
let signedTxn = algosdk.signMultisigTransaction(txn, mparamsAccount,;
fetch(traxUrl, {
method: ‘POST’,
headers: {
‘Content-Type’: ‘application/x-binary’,
body: signedTxn,
.then(response => response.json())
.then(data => {
.catch((error) => {
console.error(‘Error:’, error);

What is the value of traxUrl?

I think the issue is that signedTxn is an object with two properties: txID and blob.
You need to only send blob:

fetch(traxUrl, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-binary',
    body: signedTxn.blob,

See js-algorand-sdk/main.js at 5d4dd3102e59366d93545522403cda2eb95196e7 · algorand/js-algorand-sdk · GitHub