Author

Topic: Fixing the "transaction timed out"/"transaction broadcast failed" issue (Read 2298 times)

legendary
Activity: 3738
Merit: 1360
Armory Developer
newbie
Activity: 5
Merit: 1
It didnt fix it for me  Sad the message is still popping up. I am not exactly sure which one am I supposed to download. I have Bitcoin Core (64 bit) and downloaded bitcoin-0.13.2-win64-setup.exe and installed it as normal. I would greatly appreciate some extra help.
staff
Activity: 3458
Merit: 6793
Just writing some code
I have been able to replicate and confirm that there is indeed an issue with transaction broadcasts timing out with 0.96, particularly with the checking mechanism. A pull request to fix the issue has been made here: https://github.com/goatpig/BitcoinArmory/pull/241. Please help test it out.
legendary
Activity: 2912
Merit: 1060
You deleted your reply? Did you fix it?
legendary
Activity: 2912
Merit: 1060
I'm on 0.96 and I'm still getting the error.
Downgrading to Core 0.13.2 did the trick, so 0.96 is still broken.

Weird mine is fixed.
newbie
Activity: 16
Merit: 0
I'm on 0.96 and I'm still getting the error.
Downgrading to Core 0.13.2 did the trick, so 0.96 is still broken.
newbie
Activity: 3
Merit: 0
I'm not sure if this is the same thing, but here it goes. I am using armory .95.1 on Mac OS 10.12.4 (Sierra) and running bitcoin core 13.2. I received a bunch of bitcoins in my armory wallet just fine, and then when I sent those same coins, I got the transaction to appear, but got zero confirmations. when I checked on the blockchain, I got the unconfirmed message. I tried to "clear all unconfirmed" and restart bitcoin-qt but the transaction did not remove. I tried everything - rescanned the database, rebuilt the database, and went as far as removed the armory folders from usrs/library/application support/ and restarted armory and imported my wallets back in. I was able to get the coins back into the wallet, but the transaction never cleared from the blockchain.

every time I've tried to resend the coins, and check back on the blockchain, the transaction date appears as the original transaction - 4/27 12:36, while in my armor wallet, I get a date that is current - 4/29 2:43 a.m. I've been going nuts trying to move these coins. I don't get any messages in armory - I don't even get a notification telling me that my bitcoins were sent successfully, or even the transaction timed out/failed message. there are absolutely no notifications within armory at all and I can't seem to move my coins. I've been at it for two days now, and I would really really like to cash these out so I can do things like, pay rent and you know, eat. any help would be really greatly appreciated. if I'm missing any info, please gimme a shout and I will do my best to post anything relevant. thank you!


never mind - it fixed itself! but it took two days. if anyone has any insight into this, I'd really appreciate the feedback. thanks!
legendary
Activity: 3738
Merit: 1360
Armory Developer
You can try the 0.96 testing builds with it, should be fine.
sr. member
Activity: 449
Merit: 251
Did anyone tried it with 14.1 yet?
full member
Activity: 204
Merit: 100
thanks again. installed earlier version of core like you say and finally have been able to make payments (broadcast). Cheers 1
legendary
Activity: 1904
Merit: 1007
Is this happening with the Linux versions of 0.95.1 and 0.14? I am yet to try using them together.
Yes. AFAICT this is an issue with all platforms, not just with one OS.

Came on this subforum for this error. Thank you for the hard work!
legendary
Activity: 2912
Merit: 1060
full member
Activity: 204
Merit: 100
Installing overwrites the binaries, you can just run the 0.94 installer as is.

Thanks all. The thread mentiones 0.13.2 version, but would using 0.94 instead of 0.95 allow me to make payments (broadcast), which is what I'm unable to do with my current version 0.95?
I'm using Lubuntu so I wouldn't be using an installer. Guess I just delete manually the current 0.95 binaries (not databases etc.) and put in instead the 0.94....?


EDIT: Ok, sorry I was getting mixed up with bitcoin core and armory. Will downgrade bitcoin core and see if I can then broadcast with Armory.
legendary
Activity: 3738
Merit: 1360
Armory Developer
Installing overwrites the binaries, you can just run the 0.94 installer as is.
full member
Activity: 204
Merit: 100
Thanks, just happened to me yesterday, windows 10 home original version and Lubuntu.
So, to downgrade, do I need to first UNINSTALL 0.95 ? Or do I just download what you say and install and it's ready to work ?
legendary
Activity: 3430
Merit: 3080
staff
Activity: 3458
Merit: 6793
Just writing some code
Is this happening with the Linux versions of 0.95.1 and 0.14? I am yet to try using them together.
Yes. AFAICT this is an issue with all platforms, not just with one OS.
legendary
Activity: 3430
Merit: 3080
Is this happening with the Linux versions of 0.95.1 and 0.14? I am yet to try using them together.
staff
Activity: 3458
Merit: 6793
Just writing some code
Update: 0.96.0 has been released. Update to that if you are still experiencing this problem.




Many of you may have noticed that with the Armory 0.95.1 and Bitcoin Core 0.14.0, Armory tends to fail to broadcast transactions and give the "Transaction timed out" and "Transaction broadcast failed" error messages.

The underlying issue that is causing this problem has been fixed for Armory 0.96, which will be released soon. However, in the meantime, downgrading to Bitcoin Core 0.13.2 will fix the issue. Once 0.96 is released, you will be able to use Bitcoin Core 0.14.0 again.

To downgrade to Bitcoin Core 0.13.2, just download the Bitcoin Core 0.13.2 binaries from https://bitcoin.org/bin/bitcoin-core-0.13.2/ and install them as you would normally install a new version of Bitcoin Core. There is no need to redownload the blockchain nor reindex Bitcoin Core's databases nor rebuild Armory's databases.




Now for the technical details about the problem, for those of you who care.

I first noticed this issue back in December, but only very recently have I nailed down why this problem cropped up in the first place.

Bitcoin Core 0.14.0 merged a change back in December which changed how Bitcoin P2P messages were being broadcast. Previously, the p2p message header and the message payload were sent all at the same time using the same kernel call. However, during their net refactor and cleanup, this mechanism was changed to send the message header in one call, and then the payload in a separate call. This is more robust and allows for better code separation, but it also causes problems for Armory.

The implementation in Armory 0.95.1 for receiving the p2p messages is not able to handle that the two parts of a p2p message are essentially sent separately. It interprets the message header as one p2p message, and the message payload as another p2p message. This means that it is incorrectly parsing the messages. The crux of the issue is that every so often Armory will receive a ping message from Bitcoin Core. However the payload of the ping message is only 8 bytes, but the message header must be 24 bytes. When Armory interprets the ping payload as a separate message, it will throw an exception because it thinks the message is too short. This exception causes the data processing thread to exit and disconnect from Bitcoin Core. Once it disconnects, it will typically reconnect, but the reconnect does not always mean that it will actually be receiving new blocks and transactions and actually remaining up-to-date with the blockchain. Thus, because of this disconnect, when you go to send some Bitcoin, it will fail to either connect to Bitcoin Core or the reconnected connection is messed up and the transaction broadcast times out or just fails entirely.
Jump to: