Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recovery key screen during sign-in in EX shows unexpected "Create a new recovery key" option #2521

Open
pmaier1 opened this issue Sep 5, 2024 · 9 comments

Comments

@pmaier1
Copy link
Contributor

pmaier1 commented Sep 5, 2024

At least on EXI (tested with 1.7.5), the key reset flow shows an unexpected "Create a new recovery key" option. This option doesn't give you the means to create a new recovery key (which isn't even possible at this point). Instead it just starts the regular key reset flow which is misleading and a duplication of the "Can't confirm" on the previous screen.

All in all, I think this is a leftover from previous designs and should be removed. Please check for Android as well.

IMG_8641

@mxandreas @manuroe @stefanceriu @bmarty

@stefanceriu
Copy link
Member

Talked this over some more with Patrick starting here https://matrix.to/#/!kCCQTCfnABLKGGvQjo:matrix.org/$my1fMW-QsNxYJOuJcKnVpFft_fWFXv0kdjzuUxR7nQM?via=matrix.org&via=element.io&via=one.ems.host

We agree that this reset flow still makes sense for the "recovery out of sync" situation but that the copy is misleading. What we really want is to reuse the same as the identity verification screen i.e. replace Create a new recovery key with Can't confirm

@jmartinesp
Copy link
Member

Kamino cloned this issue to element-hq/element-x-android

@bmarty
Copy link
Member

bmarty commented Sep 5, 2024

To create a new recovery key, the user as to go back and click on "Can't confirm", I do not think this is a good idea to add another entry point to reset on this screen.

We previously had instruction to reset the key using another client but it has been remove in this PR: element-hq/element-x-android#3355

image

@pmaier1
Copy link
Contributor Author

pmaier1 commented Sep 5, 2024

To create a new recovery key, the user as to go back and click on "Can't confirm", I do not think this is a good idea to add another entry point to reset on this screen.

Exactly. That's why I've created this ticket. Android apparently already behaves correctly. Thanks for checking!

@pmaier1 pmaier1 changed the title Key reset in EX shows unexpected "Create a new recovery key" option Recovery key screen during sign-in in EX shows unexpected "Create a new recovery key" option Sep 16, 2024
@pmaier1
Copy link
Contributor Author

pmaier1 commented Oct 1, 2024

There is another case where the user has successfully set up the app but some of the (crypto) secrets are missing. In this case the user will see a banner like this

Screenshot from 2024-09-27 09-51-07

In this case there is no way to get to the "Confirm your identity" screen that has "Can't confirm". For this reason we need an entry point to identity reset here. I suggest to call it "Doesn't work?" since this can cover multiple cases

  • The user does not have a recovery key
  • The user has a recovery key but it's wrong
  • The user has a recovery key but the secret storage on the server is broken / doesn't have all secrets needed

In all the above cases the user has to reset.

So, all in all

  • The recovery key screen during sign-in should not show an entry point to identity reset
  • The recovery key screen for "chat backup is out of sync" should show an entry point ("Doesn't work?") to identity reset

@mxandreas
Copy link

The recovery key screen during sign-in should not show an entry point to identity reset

Since this is already done in Android, I created a ticket for iOS: element-hq/element-x-ios#3357 cc @stefanceriu .

The recovery key screen for "chat backup is out of sync" should show an entry point ("Doesn't work?") to identity reset

I will sync with @americanrefugee on the exact design of it. One thing is to have the button there so in principle user has the ability to reset. A totally different thing is to actually make it clear for the user why is it there and if/why they need to do it, etc.

@bmarty @stefanceriu - are there any technical limitations/nuances for distinguishing if the recovery key entry screen pops up as part of the nominal device verification flow or during this special flow when user needs to "confirm" the recovery key.

@stefanceriu
Copy link
Member

are there any technical limitations/nuances for distinguishing

not as far as I'm aware, it should be pretty straight forwad

@bmarty
Copy link
Member

bmarty commented Oct 2, 2024

Yes, same, there should not be any problem to distinguish cases.

@mxandreas
Copy link

mxandreas commented Oct 2, 2024

We had a quick session with Aaron - he suggested that instead of adding any extra buttons to the "enter recovery key" screen, we would add the "Can't confirm" button (title TBC) right into the initial banner. I like this approach much more, as it is consistent with the nominal device verification flow and we do not have multiple different versions of the same screen.

Now, the major challenge is that it is still very hard for user to know when they need to press the "Can't confirm" button and do the reset, because:

  1. Even if something went wrong with/in this device, they may have another device which is verified and works fine. So, the reset is not the only way out, right?
  2. If they enter the key and it fails, are we able to distinguish between a) the key was correct and but fixing the issue failed regardless vs. b) the key was incorrect? If not, then it is even more confusing because the user might actually know the correct key but made some copy-paste error and needs to reset identity as a result.

@pmaier1 Do you know answers to the questions above or I should take this up with the Crypto team? I think if we're just going to rename the button something like "Can't confirm or did not work", then I do no think it makes any difference for the user - they are just as confused and would not know if reset is the right thing to do or not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants