Author

Topic: WARNING: POSSIBLE BUG IN MYCELIUM WALLET: Bitcoin never showed (FIXED) (Read 189 times)

legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
At the end of the day... it's basically due to the relatively regular failing of Mycelium to sync properly. Whether this is a problem with the client or their backend server infrastructure is unknown. Personally, I suspect it is the backend server infrastructure, but I have no real proof of this.

Actually if you have it installed you can go to settings --> about --> logs (last thing on the bottom) and see such things as:

Code:
2021-08-10 06:56:07.814:INFO:Connecting to https://wapi.mycelium.com (0)
2021-08-10 06:56:07.820:SEVERE:IOException when sending request getExchangeRates
2021-08-10 06:56:07.822:INFO:Connecting to https://wapi.mycelium.com (0)
2021-08-10 06:56:07.824:WARNING:Error when read configuration: Unable to resolve host "mycelium-wallet.s3.amazonaws.com": No address associated with hostname

and
Code:
2021-08-12 05:50:33.945:INFO:Connected to electrumx-2a1.mycelium.com:10000
2021-08-12 05:50:33.953:INFO:Subscriptions been renewed
2021-08-12 05:50:33.978:INFO:Connection thread loop interrupted. Reason: Read error: ssl=0x74ffe7b1d8: I/O error during system call, Software caused connection abort
2021-08-12 05:50:33.980:INFO:Connection to electrumx-2a1.mycelium.com:10000 closed
2021-08-12 05:50:34.988:INFO:Connecting to electrumx-2a1.mycelium.com:10001
2021-08-12 05:51:33.080:INFO:Connection thread loop interrupted. Reason: failed to connect to electrumx-2a1.mycelium.com/3.126.92.190 (port 10001) from /:: (port 48360): connect failed: ETIMEDOUT (Connection timed out)
2021-08-12 05:51:33.085:INFO:Connection to electrumx-2a1.mycelium.com:10001 closed
2021-08-12 05:51:43.421:INFO:Connecting to electrumx-1a.mycelium.com:10000
2021-08-12 05:51:43.451:INFO:Connection thread loop interrupted. Reason: electrumx-1a.mycelium.com
2021-08-12 05:51:43.454:INFO:Connection to electrumx-1a.mycelium.com:10000 closed

No Wi-Fi issues on the phone, every other wallet works fine.
Mycelium has just no longer as good and reliable as it used to be, due to back end stuff.
And with the fact that you have to recompile it yourself to change the back end node you talk to, it's just going to get worse.

I could spend a long time screaming about it, and all the crappy things that the developers have done, but it's not worth the time, I think Mycelium is just going to fade away as people keep having more and more issues with it and people stop recommending it.

-Dave
HCP
legendary
Activity: 2086
Merit: 4361
Increasing the gap limit shouldn't be the issue truly,
Perhaps I am not making myself clear. Again... it isn't an address "gap limit" issue. It's a Mycelium specific account "gap limit" issue... and I put "gap limit" in quotes because it isn't what we usually refer to as the "gap limit" (ie. check for X "unused" addresses before assuming there is no more transaction history to look for).

It would appear that initially, Mycelium had stopped syncing properly, and was not showing the transactions on his #4 Account, even though, according to the OP, they had been confirmed (and I assume they were showing on blockexplorers etc). So, OP then uninstalled and reinstalled the app, wiping all the data... after restoring from their seed, Mycelium was only showing the first 3 accounts... so, it was still not syncing the transactions from the #4 account properly... however, because of the account "gap limit" logic within Mycelium (ie. do not show an empty account on wallet restore), it didn't even show the #4 account as existing.

To illustrate... it sounds like the OPs Mycelium wallet looked like this...

Before uninstall:
Code:
Account#1 - Transaction History
Account#2 - Transaction History
Account#3 - Transaction History
Account#4 - no transaction history, but account visible

After reinstall and restore:
Code:
Account#1 - Transaction History
Account#2 - Transaction History
Account#3 - Transaction History


That is to say, Account #4 was not recreated after the restore... as the app was still not syncing those transactions correctly. OP then manually created Account#4 and Mycelium magically synced the 2 missing transactions and displayed the correct balance.


At the end of the day... it's basically due to the relatively regular failing of Mycelium to sync properly. Whether this is a problem with the client or their backend server infrastructure is unknown. Personally, I suspect it is the backend server infrastructure, but I have no real proof of this.
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
Because of this logic, if, for some reason, it failed to find any history for Account 4 when restoring from the seed, then it would stop and wouldn't automatically add Account 4... It's essentially an "account gap limit" of 0.
Increasing the gap limit shouldn't be the issue truly, the wallet is a new wallet and according to OP, only two transactions yet sent which are $2100 and $50 to the same address on a newly created wallet. The address should definitely be the first address of the newly generated wallet.
HCP
legendary
Activity: 2086
Merit: 4361
it isn't exactly like the address "gap limit" issue... but it is similar. It's supposed to keep looking for accounts until it finds one that hasn't been "used", as it only allows you to have one "unused" account. So, if AccountN is unused (ie. no history), then it shouldn't let you create AccountN+1.

It also doesn't automatically add an unused account when doing a restore. It will stop at the last used account.


Because of this logic, if, for some reason, it failed to find any history for Account 4 when restoring from the seed, then it would stop and wouldn't automatically add Account 4... It's essentially an "account gap limit" of 0.
legendary
Activity: 2534
Merit: 6080
Self-proclaimed Genius
-snip-
- Can someone confirm if it's supposed to work like that?
Based on his description, it's not because of gap limit issue but a problem with identifying derivation paths for accounts that he previously had.
Refer to the "account" in this table: https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#examples

IDK how Mycelium decide which accounts to restore but it should have restored Iliketurtles4's Account 4 as long as the first three accounts has transaction history.
Standard account discovery: https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account-discovery
legendary
Activity: 2968
Merit: 3406
Crypto Swap Exchange
FIXED: yes this is a bug in there system that hopefully they can fix. So to clarify, my mycelium wallet lost my “account 4” which I opened because I needed a new address to send to for my online casino. All that showed when I redownloaded wallet and entered the seed phrase was accounts 1-3… oddly enough 4 was gone and my balance remained 0. I solved this by merely creating another account (with a different name because I feared data overwriting) and the balance appeared instantaneously. Wow… cmon mycelium!
That's interesting! Based on what you've described, I don't think it's really a bug [DQMOT]... I don't have enough used HD accounts on Mycelium to test my theory by trying to replicate your situation, but it looks quite similar to how you can't automatically recover an address [from the seed] that exceeds the gap limit on Electrum [read the "WARNING" part - @Charles-Tim also mentioned it prior to your update].
- Can someone confirm if it's supposed to work like that?
HCP
legendary
Activity: 2086
Merit: 4361
If you have done the seed phrase importation correctly, it should work. But alternatively which I will advise you to do, import the seed phrase on electrum wallet.
Note that this procedure to import into Electrum will only show the "default" Mycelium account.

For any of the other accounts (ie. Account#s 2-4 or more), you would need to modify the derivation path. When you get the screen that asks you to set the "Script type and Derivation path":


You would need to modify the derivation path and change the last digit... somewhat confusingly, you're going to need to change it to (MyceliumAccount# - 1)', as it's indexed from 0... so the "main" account (ie. Account#1 is 0'... Account#2 is 1'... Account#3 is 2'... Account#n is n-1' etc etc)

So, in OPs situation... for Account #4... the derivation path would be one of the following (depending on script type):
Legacy:
Code:
m/44'/0'/3'
Nested:
Code:
m/49'/0'/3'
Native:
Code:
m/84'/0'/3'
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
If you have done the seed phrase importation correctly, it should work. But alternatively which I will advise you to do, import the seed phrase on electrum wallet.

On electrum wallet, click on Standard wallet -> I already have a seed -> option -> BIP39 seed -> next.

Then choose the address type.

Code:
Legacy (p2pkh) for legacy addresses, that start from 1
P2sh-segwit (p2wpkh-p2sh) for nested segwit addresses, that start from 3
Native segwit (p2wpkh), address that start from bc1

Click on next and choose password. You should be able to see your balance.

If nothing appear on your bitcoin balance, it will be good to check if the address you sent it to is generated by the seed phrase your imported. On Electrum wallet, press view -> show addresses -> press the address tab shown to see lists of 20 receiving addresses.

To see more addresses, press view -> show console -> press the console tab and type this:

Code:
wallet.change_gap_limit(number)

Input the number of addresses you want to see. Your address should be in the first 20 but nothing bad to check it up to 100. If not there, that means you imported the seed phrase that did not generate the address the coin is sent to.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
This has been a problem on and off with mycelium for years:

https://www.reddit.com/r/Bitcoin/comments/ke05nx/mycelium_wallet_wont_sync_800_bitcoin_disappeared/
https://bitcointalksearch.org/topic/mycelium-wallet-not-avialable-5300683

And many more. Do a quick google search for 'mycelium not updating'.
You should be able to import your seed into another wallet as others have suggested.
Or you can wait and see if it ever syncs. Or do can try to put your phone in airplane mode, do a sync (it should fail) and then take it out of airplane mode and do another sync and try again. I have found that at times that has kicked it back to life.

-Dave
legendary
Activity: 2968
Merit: 3406
Crypto Swap Exchange
At this point I backup the 12 word deed and decide to uninstall the app in order to see if that would allow the balance to show… now this new “account” is not showing, just my first 3 which I’ve done transactions on already.
~Snipped~
What can I do to get those bitcoin back?
Have you tried restoring it with another wallet like Electrum [link - it also has an android version]?
- [GUIDE] How to Safely Download and Verify Electrum [Guide]

Standard wallet > I already have a seed > Enter your seed phrases [Click the wheel button (seed option) > check BIP39] > Next > Choose the appropriate address type [legacy (1), p2sh-segwit (3), and native segwit (bc1)] > Next > Choose a password > Wait for it to sync > Click the 3-dots from the upper right corner > Addresses [look for the address in question]

(Fwiw I do have a screenshot of the address it told me to send to and proof that I sent to this address, I did not send to wrong address)
Can you double-check to see if "all" of the characters match [not only the first and last few characters]?
copper member
Activity: 2142
Merit: 1305
Limited in number. Limitless in potential.
You should try to send a little one to confirm that the seed you saved and the one on the mycelium account is the correct one, this is recommended to any wallet on its first setup, instead of sending large amount.

By the looks of it, it seems like that the wallet address(or completely the seed) on your mycelium wallet are not the same on the one you have saved since it shows completely different address when you imported the one you have saved
But it could be that you have just input a wrong seed's order, that's why it generates a different address.

I'm using mycelium since 2016 (android version) yet, this never happened to me.
newbie
Activity: 1
Merit: 0
Yesterday at about 4 o’clock I had $2100 worth in Bitcoin sent to a new bitcoin address in my mycelium wallet after creating a new “account”. 5 hours transpire and transaction confirmed but never any update on mycelium account balance. To test again, I sent another $50 to the same mycelium address and “account” after many confirmations nothing showed. At this point I backup the 12 word deed and decide to uninstall the app in order to see if that would allow the balance to show… now this new “account” is not showing, just my first 3 which I’ve done transactions on already. I am so lost right now, I thought mycelium was a trusted wallet. What can I do to get those bitcoin back?

(Fwiw I do have a screenshot of the address it told me to send to and proof that I sent to this address, I did not send to wrong address)


FIXED: yes this is a bug in there system that hopefully they can fix. So to clarify, my mycelium wallet lost my “account 4” which I opened because I needed a new address to send to for my online casino. All that showed when I redownloaded wallet and entered the seed phrase was accounts 1-3… oddly enough 4 was gone and my balance remained 0. I solved this by merely creating another account (with a different name because I feared data overwriting) and the balance appeared instantaneously. Wow… cmon mycelium!
Jump to: