metamask-mobile icon indicating copy to clipboard operation
metamask-mobile copied to clipboard

App becomes unresponsive on "Confirm" if data connection is lost

Open plasmacorral opened this issue 3 years ago • 0 comments

Description

This is a test of interrupting data connectivity just before confirming a transaction on Ledger. When this happens, the data connection error page flashes and the user is returned to the "Confirm" page. Unfortunately, both the "Back" and "Cancel" options are unresponsive. The user needs to close the app and re-open, and will then see the action in activity showing with a status of "failed".

Produced on both Android 11 with Samsung A515f as well as iOS 15.6.1 with iPhone 13 mini using build 952.

Reproduction steps

  1. Have build 952 already paired with Ledger Nano X
  2. Be on a test network (Goerli)
  3. Turn on airplane mode on mobile device
  4. Turn Wi-Fi on and connect to network
  5. Turn on Bluetooth
  6. Leave airplane mode in the ON position, and have both Wi-Fi and Bluetooth ON over-top of Airplane mode
  7. Check Wi-Fi advanced settings and ensure that no other networks are present that have auto-connect enabled
  8. Compose transaction by selecting receive address and setting amount
  9. Tap "Confirm with Ledger"
  10. Advance to the "accept and send" action in Ledger menu
  11. Abruptly disconnect data by pulling power from router, or enable airplane mode on hotspot.
  12. Promptly confirm on Ledger by pressing both buttons
  13. Land back at "Confirm"
  14. Attempt to press "Back" or "Cancel" and note lack of response

Acceptance Criteria

  • App should likely park user on data connection error in this scenario
  • App should not become unresponsive pending closure

Scenario: Data interruption

  • GIVEN a user is ready to confirm a transaction with Ledger
  • WHEN a user loses all data connectivity
  • AND a user confirms from Ledger
  • THEN user should be parked on "You're offline..." error page in MMM when transaction cannot be broadcast
  • WHEN data connection is restored
  • THEN the transaction should be able to be resumed
  • WHEN resuming the transaction is not possible
  • THEN return the user to wallet view

References

  • iOS: https://recordit.co/PPUOiHdE4G
  • Android: https://recordit.co/sQMBU7RuMt

plasmacorral avatar Sep 13 '22 00:09 plasmacorral