Auth returning incomplete data

Hi,

I am trying auth in iOS, I could see the username coming back until about 24 hours ago, that is coming back as nil now. I have logged an issue here: https://github.com/blockstack/blockstack-ios/issues/53 What I am getting is partial data.

I have just tried opening Blockstack browser in my mac, it showed me my profile picture and username.id briefly and went back to the ID string without any picture. I have Twitter profile linked, it’s saying now that it is not linked.

I am new to the Blockstack and I have seen this happening before as well, only it came the first time during development, is there anything down at the backend?

@hammadtariq have you updated to the latest version of the Browser? There was a bug that caused incorrect profiles to be loaded.

Yes, did it last night. Same result! My ID is hammadtariq.id, I also checked this on explorer, I could find the zone file and everything seemed to be OK. Should I create a new id and see what happens to it?

@yukan I just tried providing my name and picture again in the blockstack browser. It appeared and I could refresh and see it there but when I restarted the browser, the progress at the top again went back to 0%.

Can you see if any error message appear in the javascript console when you update your profile in the Browser?

Yes, there are errors.
Here is the console when I tried to upload the photo and re-enter my name and bio:
error-while-uploading

Here is the output when I refreshed the page:
error-after-refreshing

Also, I am not sure if this is related but whenever I land on browser.blockstack.org while doing auth for iOS, it shows me two similar looking IDs while I have only one and I have a registered name, it never shows that (I don’t know if it’s supposed to do that).
This is happening since the start on iOS, like when I was able to retrieve the name from the auth, it was happening then as well.
Here is a screenshot:

Looks like the errors you’re seeing in the console aren’t related to the profile upload. Can you switch to the network tab in the dev console and check the status code of the POST request that uploads your profile.json to the Gaia hub?

I think I have found this culprit. It started happening when I started using multiplayer-support branch for blockstack-ios. I needed to use scopes to get publish_data access.

Something in there is over-writing my profile.json when I try to authenticate (just auth nothing else). I tried it just now, went into my browser, updated the picture, name, and the bio, opened the profile.json file where I could see the updated tags.

Then I went to use the auth on phone and as soon as I completed the cycle, my profile.json was refreshed and there were no name, image etc. tags in it. Repeated the process a couple of times and then tried the old blockstack fork, it worked well, no overwriting happened this time.

Edit Also if it helps to debug, the iOS auth cycle also refreshes the token tag in profile.json at the top.
Re-Edit @yukan to dig further I just downloaded a fresh copy of https://github.com/blockstack/blockstack-ios, installed the pods and ran the example. Same thing happens. As soon as the Sign-in is successful and user is being redirected back, the profile.json refreshes. I thought that maybe my redirect script is doing something but than I just tried the original URLs that come with the example. Same result!

Thanks for the details–I’m investigating this!

From that branch onwards is when we started using the publish_data scope, which has the side effect of adding the apps field to profile.json I believe. @jude, could there be a bug in blockstack.js where including publish_data for some accounts results in other fields (i.e. image, name, etc.) being cleared? This is not happening with my account (shrey.id), but it is with “hammadtariq.id”.

@hammadtariq Try calling Blockstack.promptClearDeviceKeychain in your iOS app and let me know how it goes. This will show a prompt to reset the local storage. It’s possible some stale information in there is causing this bug.

@hammadtariq also, could you confirm that your profile edits were actually written to the profile.json file (prior to them being wiped)?

Yes, I can confirm from profile.json, each time I would re-upload picture, name and bio from the browser but as soon as I would run auth from the app, tags from the profile.json would wipe themselvs.

Thanks, @shreyas this solved the problem. I called resetDeviceKeychain(self) on the main ViewController, had to restore the account but everything seems fine now.

Awesome!! Glad to hear :+1:t5: