Interrupted username purchase now in limbo (via Blockstack Browser on Windows)

I installed the latest Windows install, added bitcoin, kicked off purchase of my username, but then my laptop battery ran out while the browser was still “buying…”. Now in the browser if I try to add the username again, it says it is taken. However, the bitcoin is still in my blockstack browser wallet, and my username is not found at explorer.blockstack.org. How can I now get the username out of this “unobtainable but not yet purchased” state please, so I can complete the purchase with my machine plugged in? Cheers, Ben

Are you still having problems with this purchase, @getmeben?

I’ve just tried again and now can make the purchase. Just pressed buy, and will be sure to keep power to my laptop this time! I appreciate it can take several hours for the purchase to happen, so will confirm when it (hopefully) succeeds…

Dammit, I just clicked away on the screen after 2.5 hours and the purchase screen disappeared. Serious, serious problems with the blockstack browser experience for what is a fundamental user experience. Has this actually been tested?

I have kick-started this process again, but tbh, there has to be a better way than leaving a browser window open for ever. It’s not the 90s.

Apologies, frustrated last night - obviously I only have the browser here so it has to be there! 7 hours later and the purchase still hasn’t finished, now I have to catch a flight so having to shut down. I think the browser experience could be more defensive - some better javascript so that the “buy” dialog doesn’t just disappear if you click somewhere else on it, also code to interrupt the window closing too in case that is accidentally clicked.

I’ll have to try for a third time later today/tomorrow once I can leave my laptop on for a few days - if that’s how long it’s going to take for this!

the reason we need to move beyond browsers and the broken web as it is

@getmeben I’m sorry to hear you had a bad experience trying to buy a name. We have added considerably more dialog and instructions in the latest version of the browser. What version were you running when you tried earlier and have you tried upgrading to 0.17.0?

Hi Jack, there is something very odd going on - I’ve left the purchase dialog on screen now for 37 hours and it still hasn’t completed! I’m on 0.16.0, so will install the latest version and give the purchase another try this weekend…

I’ve installed 0.17.0 now - but will have to work out how to get back the bitcoin I had in the wallet before doing the username purchase again at the weekend - that’s now disappeared!

@getmeben Did you save the backups for both of your wallets? They should have been presented to you when you signed up for the account the first time. The reason for the 37 hour wait was because we hardforked the network last week and the 0.16.0 software is incompatible with what the network is running now.

Yes, I have those saved, so if you could please point me to some instructions on how to recover, I’ll happily follow those and then kick off the purchase again. I can see now why the process was never going to work!

@getmeben When you upgrade your core wallet will be unaffected. The browser wallet which holds your name just needs to be restored with the 12 word phrase. To do this you just need to clear local storage in your browser and go through the dialog modals on browser restart.

Thanks for that Jack, and your patience here! I cleared the local storage and restored my account. I can see in the javascript console when I’m on the profile page it says
account/store/account/actions.js: refreshCoreWalletBalance: balance is 0.01.
But when I go to the wallet page there’s a js error so it thinks my balace is 0:
Failed to load https://www.bitstamp.net/api/v2/ticker/btcusd/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
2017-10-10T22:59:57.111+0200 ERROR account/store/settings/actions.js: refreshBtcPrice: [TypeError: Failed to fetch] TypeError: Failed to fetch
Not sure if more of the js output will help identify what the problem is here or if that’s enough? Sorry I seem to keep hitting odd things! The lack of balance here is then preventing me from making the username purchase.

One other thing I noticed in the js console is that it’s outputting a password in plain text when it lists the value of blockstack_integration_test_api_password which doesn’t seem right.

@getmeben The JS error above looks like the CORS proxy isn’t running. you are on windows right? Can you share the output of docker ps?

Also can you share the full console lines where that is leaking? Are you running the Integration Test framework?

Hi @getmeben I’m really sorry about the trouble and confusion here.

There are actually 2 wallets. We switched away from the one that was located outside the browser. In the v0.17.1 release, your bitcoin is in the old core wallet

What we need to do is send all of the remaining bitcoin in your old core wallet from the old core to the new wallet.

Here’s how to get it out:

  1. Go to your wallet and copy the address under the QR code.
  2. Go to this (hidden) page: http://localhost:8888/wallet/send-core
  3. Paste the address you copied into the To: box.
  4. Enter your password
  5. Click send.

Some of the balance of 0.01 will go to the bitcoin miners to pay for the transaction, so you’ll receive a bit less than the full 0.01.

Let us know if you have any trouble!

Thanks both. I’m travelling tomorrow day but will have some hours tomorrow night to follow up with all that you’re after…getting there!

I recovered the wallet on 0.17.0, have upgraded to 0.17.1 (wallet still intact), and have made the username purchase at last, just waiting for that process to complete. Made it at last, thanks for the help to get here - now I can play!

In terms of the error, here are some more details. The docker ps output is

$ docker ps
CONTAINER ID        IMAGE                                                COMMAND                  CREATED             STATUS              PORTS                    NAMES
14c11c1aa8c9        quay.io/blockstack/blockstack-browser:v0.17.1        "blockstack-cors-p..."   7 minutes ago       Up 7 minutes        0.0.0.0:1337->1337/tcp   blockstack-browser-cors
705c29ba8e85        quay.io/blockstack/blockstack-browser:v0.17.1        "blockstack-browser"     7 minutes ago       Up 7 minutes        0.0.0.0:8888->8888/tcp   blockstack-browser-static
671114744f52        quay.io/blockstack/blockstack-core:v0.17.1-browser   "blockstack api st..."   7 minutes ago       Up 7 minutes        0.0.0.0:6270->6270/tcp   blockstack-api

And here are the repeated lines where it’s leaking, from http://localhost:8888/wallet/receive - I’m not aware what the Integration Test framework is, so assume it’s not running as part of the standard Windows browser only install. Hope this detail helps, let me know if there’s anything I can provide.

One other thought: given the main problem I had here was when the hard fork happened and I still had the 0.16.0 version installed, perhaps something can be added in to future releases to at least provide user feedback when processes are broken/compromised by these sorts of version-conflict issues?

2017-10-12T22:46:57.675+0200 ERROR account/store/settings/actions.js: refreshBtcPrice: [TypeError: Failed to fetch]
TypeError: Failed to fetch
main.js:206814 2017-10-12T22:47:07.515+0200 DEBUG profiles/wallet/components/Balance.js: balanceTimer: calling refreshBalances...
main.js:206814 2017-10-12T22:47:07.515+0200 DEBUG account/store/account/actions.js: refreshBalances: refreshing balances for address <removed>
main.js:15686 constant: blockstack_integration_test_api_password, parameter: <removed>
main.js:16364 proxyFetch: https://www.bitstamp.net/api/v2/ticker/btcusd/
wallet/receive:1 Failed to load https://www.bitstamp.net/api/v2/ticker/btcusd/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
main.js:206814 2017-10-12T22:47:08.033+0200 ERROR account/store/settings/actions.js: refreshBtcPrice: [TypeError: Failed to fetch]
TypeError: Failed to fetch
main.js:206814 2017-10-12T22:47:17.516+0200 DEBUG profiles/wallet/components/Balance.js: balanceTimer: calling refreshBalances...
main.js:206814 2017-10-12T22:47:17.518+0200 DEBUG account/store/account/actions.js: refreshBalances: refreshing balances for address <removed>
main.js:15686 constant: blockstack_integration_test_api_password, parameter: <removed>
main.js:16364 proxyFetch: https://www.bitstamp.net/api/v2/ticker/btcusd/
wallet/receive:1 Failed to load https://www.bitstamp.net/api/v2/ticker/btcusd/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
main.js:206814 2017-10-12T22:47:17.800+0200 ERROR account/store/settings/actions.js: refreshBtcPrice: [TypeError: Failed to fetch]
TypeError: Failed to fetch
main.js:206814 2017-10-12T22:47:27.515+0200 DEBUG profiles/wallet/components/Balance.js: balanceTimer: calling refreshBalances...
main.js:206814 2017-10-12T22:47:27.516+0200 DEBUG account/store/account/actions.js: refreshBalances: refreshing balances for address <removed>
main.js:15686 constant: blockstack_integration_test_api_password, parameter: <removed>
main.js:16364 proxyFetch: https://www.bitstamp.net/api/v2/ticker/btcusd/
wallet/receive:1 Failed to load https://www.bitstamp.net/api/v2/ticker/btcusd/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
main.js:206814 2017-10-12T22:47:27.950+0200 ERROR account/store/settings/actions.js: refreshBtcPrice: [TypeError: Failed to fetch]
TypeError: Failed to fetch

Hi @getmeben

An issue in the latest few version of the Windows install has led to this actually being a persistent bug –

I document the issue here:

PREORDERs will go through, but the backend process won’t send out the second operation. That should be patched tonight, and if you stop your local node and restart after the upgrade, it should update and send out the second transaction for your name (I hope in time for your PREORDER to still be valid!)

Okay – an update has been pushed to the docker repository – if you restart your blockstack client, it should pull down the new image for and finish your transactions.

Thanks @aaron, I started up the browser half an hour ago and it downloaded the updates. However, my username is still showing as pending. I can leave my machine running for another 1.5 hours in case it takes some time to process, but it could well be that my preorder did time out (sorry, not sure how to check that myself). If that is the case, what can I do to kick-start this second part of the reg again please?