monero icon indicating copy to clipboard operation
monero copied to clipboard

Failed to sign multisig tx: This signature was made with stale data: export fresh multisig data, which other participants must then use

Open woodser opened this issue 1 year ago • 2 comments

I'm observing a pattern with multisig wallets, where if importing multisig info fails the first time (e.g. no connection to daemon), then it succeeds the second time, then it'll cause an error when signing a multisig tx:

-35: Failed to sign multisig tx: This signature was made with stale data: export fresh multisig data, which other participants must then use

The issue might appear if there's an error syncing with the daemon here: https://github.com/monero-project/monero/blob/f90a267fa34bad095d7e8ba72ee78f2a63f37df6/src/wallet/wallet2.cpp#L14857

In that case I have to create the multisig tx anew, and then have the original peer complete the signing

Hoping someone might have an idea of what could cause this "stale data" error if import_multisig_info is called twice because the first request fails. Seems to be a bug of some kind.

woodser avatar Mar 17 '25 10:03 woodser

I tried to reproduce. I used the CLI wallet with 2/2 multisig. To provoke an error when attempting import_multisig_info I stopped the daemon before executing the command.

In about 20 attempts I had the error only once or twice.

I suspect that there is some additional, not yet recognized condition that is necessary to trigger the error, beyond merely attempting the import first with an error and then repeating it.

The mechanism that detects "stale data" always was, and to this day is, more or less a complete mystery to me. Despite browsing multisig-related code in wallet2.cpp I don't have the slightest idea about the general approach behind that detection. There is talk about some "nonces" in comments, but no idea what they are, how they are calculated, and why they would allow to watch over correct execution of multisig steps.

That's not a good position to start an investigation ...

rbrunner7 avatar Mar 23 '25 15:03 rbrunner7

A PR is open to fix this from @SNeedlewoods: https://github.com/monero-project/monero/pull/9863

woodser avatar Mar 24 '25 15:03 woodser

I encountered this today when using Haveno. I had turned off my VPN while a trade was open. I was the buyer as a maker. When the other party clicked payment confirmed I think something went wrong.

elibroftw avatar Sep 08 '25 21:09 elibroftw