status-im / status-mobile

a free (libre) open source, mobile OS for Ethereum
https://status.app
Mozilla Public License 2.0
3.91k stars 984 forks source link

The flow for the "Scan or enter sync code" is not clear #20643

Open churik opened 4 months ago

churik commented 4 months ago

Bug Report

Problem

Following up on the conversation in this Discord thread.

The usage guidelines here appear unclear.

The only valid scenario for using this flow is when a user has recovered their profiles on both devices using the same seed phrase and now aims to pair them. This flow was used two times, and in both cases users attempted to scan QR codes from different user profiles.

When a user scans an invalid QR code (belonging to another user profile), the following error message is displayed: Invalid QR Error

Steps:

Upon completion, the devices will be paired successfully (tested a success flow).

Acceptance Criteria

Sync Code Instructions

Additional Information

churik commented 4 months ago

cc @ilmotta

ilmotta commented 4 months ago

Thank you so much for raising the issue @churik

I followed the exact steps you outlined and I could also successfully sync two accounts that were previously restored with a seed phrase. As far as my testing goes, I also noticed a few problems in the UX.

I'm in full alignment with your ideas @churik. Probably designers will need some time to iterate and figure out what's best (respecting our resource limitations for 2.30), so just a quick notice to other devs that this issue is not ready to be picked up yet until we figure the exact outcome. Let's chat tomorrow!

The word device

When the user presses on the plus button in the Syncing screen, we now show a bottom sheet with the checkboxes. One of the sentences says: "To sync your devices successfully... Make sure you are logged in on the other device". We could be more precise about this point, for example Make sure you are logged in on the same account on the other device.

Error handling

Syncing is a feature where errors are expected to happen for reasons outside our control (like the many types of configuration networks our users may use, VPNs, etc). This is different than many of our bugs where we are close to 100% in control of the behavior. The way we handle sync errors should be more first class, which could mean giving our users a chance to understand what went wrong and giving them enough information so that they don't get stuck. For that we need to avoid showing generic error messages or cryptic error messages from status-go.

Nowadays when sync fails, we show a screen with that big red box (missing image) and when the user presses on the button Try again, the sync screen closes and they are back to the Home screen, so the button is broken. The text message when sync fails is not very useful, it says "Make sure both devices are powered on and connected to the internet.", but this hardly helps someone understand they need to sync the same accounts and that they may be connected to the VPN, and so on. One idea is to reduce the image which is too colorful and distracting in this part of the flow and instead, use the precious space to give users more useful information which is digestible and actionable, so they can hopefully figure the problem by themselves.

User research

After 2.30, we may want to conduct user research on sync, both logged in and in the onboarding stage. We are all too technical and have biases, better would be to understand how users with less context about the feature react to it and design with that feedback in mind.

churik commented 4 months ago

postponed due to limited capacity for 2.30

churik commented 2 months ago

removed from milestone, as to my understanding it is not crucial flow, especially with fallback for sync, which was recently implemented