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

[Bug]: Metamask crashes on the Protect your wallet flow on iOS 17.2 beta #7729

Closed
anaamolnar opened this issue Nov 8, 2023 · 1 comment · Fixed by #7737
Closed

[Bug]: Metamask crashes on the Protect your wallet flow on iOS 17.2 beta #7729

anaamolnar opened this issue Nov 8, 2023 · 1 comment · Fixed by #7737
Assignees
Labels
regression-prod-7.9.1 Regression bug that was found in production in release 7.9.1 regression-RC DEPRECATED: Please use "regresssion-RC-x.y.z" label instead regression-RC-7.11.0 release-7.11.0 Issue or pull request that will be included in release 7.11.0 release-blocker This bug is blocking the next release Sev1-high An issue that may have caused fund loss or access to wallet in the past & may still be ongoing team-mobile-platform type-bug Something isn't working

Comments

@anaamolnar
Copy link

anaamolnar commented Nov 8, 2023

Describe the bug

The app crashes on version 7.9.1 on mobile when users go through the Protect your wallet flow to set a password and back up their SRP.

Edit from: @Cal-L @hesterbruikman
Navigating to another screen after going full screen on a video for iOS 17 causes a crash in the app. It has been reported here TheWidlarzGroup/react-native-video#3329. Based on the logs provided by the MM user and the issue report, the theory aligns.

Expected behavior

Users should be able to go through the Protect your wallet flow and back up their SRP normally without the application closing.

Screenshots/Recordings

Original thread: https://consensys.slack.com/archives/C8RSKCNCD/p1699369438003369

Steps to reproduce

  1. Create a wallet on an iPhone using iOS 17.2 beta (the only one confirmed at this time)
  2. Skip the SRP backup
  3. Add funds
  4. You will be prompted to the Protect your wallet flow
  5. After watching the video and going to the password screen, the crash happens

Error messages or log output

None

Version

7.9.1

Build type

None

Device

iPhone on iOS 17.2 beta

Operating system

iOS, Other (please elaborate in the "Additional Context" section)

Additional context

No response

Severity

No response

@metamaskbot metamaskbot added the regression-prod-7.9.1 Regression bug that was found in production in release 7.9.1 label Nov 8, 2023
@Cal-L Cal-L self-assigned this Nov 8, 2023
@sethkfman sethkfman added the Sev1-high An issue that may have caused fund loss or access to wallet in the past & may still be ongoing label Nov 8, 2023
@metamaskbot metamaskbot added needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) in-progress and removed in-progress needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) labels Nov 9, 2023
@sethkfman sethkfman added regression-RC DEPRECATED: Please use "regresssion-RC-x.y.z" label instead release-7.10.0 Issue or pull request that will be included in release 7.10.0 release-blocker This bug is blocking the next release labels Nov 9, 2023
@metamaskbot metamaskbot added ready-for-dev and removed needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) labels Nov 9, 2023
@sethkfman sethkfman added release-7.11.0 Issue or pull request that will be included in release 7.11.0 and removed release-7.10.0 Issue or pull request that will be included in release 7.10.0 labels Nov 9, 2023
@metamaskbot metamaskbot added needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) needs-qa Any New Features that needs a full manual QA prior to being added to a release. and removed ready-for-dev needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) labels Nov 9, 2023
chrisleewilcox pushed a commit that referenced this issue Nov 10, 2023
## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

It was discovered that the video begins crashing the app for iOS 17.2+
physical devices. While there is no solution in the latest
react-native-video package at the moment
(TheWidlarzGroup/react-native-video#3329),
we can patch it by removing the `controls` prop and temporarily use
custom controls (a play/pause + mute controls). The tradeoff is that
other features such as full screen and seeking will not be available on
iOS.

## **Related issues**

Fixes: #7729

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**
<img width="537" alt="Screenshot 2023-11-09 at 9 19 57 AM"
src="https://github.com/MetaMask/metamask-mobile/assets/10508597/134b6eb2-8017-4b2c-ae7d-12a28a47d10a">


<!-- [screenshots/recordings] -->

iOS 17.2 Interaction

https://github.com/MetaMask/metamask-mobile/assets/10508597/8976d5b7-d276-4834-9496-0ba8608e25e3

Video with play/pause + mute controls on settings

https://github.com/MetaMask/metamask-mobile/assets/10508597/492fb78d-3703-4714-bed1-8ddd7b631efa

Video with play/pause + mute controls on onboarding

https://github.com/MetaMask/metamask-mobile/assets/10508597/14780058-c595-4fb9-8aab-9987120c8126

Android remains the same
https://recordit.co/pTuloJmuIn

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
@github-actions github-actions bot removed the needs-qa Any New Features that needs a full manual QA prior to being added to a release. label Nov 10, 2023
@metamaskbot metamaskbot added the release-7.12.0 Issue or pull request that will be included in release 7.12.0 label Nov 10, 2023
chrisleewilcox pushed a commit that referenced this issue Nov 13, 2023
## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

It was discovered that the video begins crashing the app for iOS 17.2+
physical devices. While there is no solution in the latest
react-native-video package at the moment
(TheWidlarzGroup/react-native-video#3329),
we can patch it by removing the `controls` prop and temporarily use
custom controls (a play/pause + mute controls). The tradeoff is that
other features such as full screen and seeking will not be available on
iOS.

## **Related issues**

Fixes: #7729

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**
<img width="537" alt="Screenshot 2023-11-09 at 9 19 57 AM"
src="https://github.com/MetaMask/metamask-mobile/assets/10508597/134b6eb2-8017-4b2c-ae7d-12a28a47d10a">


<!-- [screenshots/recordings] -->

iOS 17.2 Interaction

https://github.com/MetaMask/metamask-mobile/assets/10508597/8976d5b7-d276-4834-9496-0ba8608e25e3

Video with play/pause + mute controls on settings

https://github.com/MetaMask/metamask-mobile/assets/10508597/492fb78d-3703-4714-bed1-8ddd7b631efa

Video with play/pause + mute controls on onboarding

https://github.com/MetaMask/metamask-mobile/assets/10508597/14780058-c595-4fb9-8aab-9987120c8126

Android remains the same
https://recordit.co/pTuloJmuIn

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
chrisleewilcox added a commit that referenced this issue Nov 15, 2023
…7737) (#7785)

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution? -->

It was discovered that the video begins crashing the app for iOS 17.2+
physical devices. While there is no solution in the latest
react-native-video package at the moment
(TheWidlarzGroup/react-native-video#3329),
we can patch it by removing the `controls` prop and temporarily use
custom controls (a play/pause + mute controls). The tradeoff is that
other features such as full screen and seeking will not be available on
iOS.

## **Related issues**

Fixes: #7729

## **Manual testing steps**

1. Go to this page... 2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**
<img width="537" alt="Screenshot 2023-11-09 at 9 19 57 AM"
src="https://github.com/MetaMask/metamask-mobile/assets/10508597/134b6eb2-8017-4b2c-ae7d-12a28a47d10a">


<!-- [screenshots/recordings] -->

iOS 17.2 Interaction


https://github.com/MetaMask/metamask-mobile/assets/10508597/8976d5b7-d276-4834-9496-0ba8608e25e3

Video with play/pause + mute controls on settings


https://github.com/MetaMask/metamask-mobile/assets/10508597/492fb78d-3703-4714-bed1-8ddd7b631efa

Video with play/pause + mute controls on onboarding


https://github.com/MetaMask/metamask-mobile/assets/10508597/14780058-c595-4fb9-8aab-9987120c8126

Android remains the same
https://recordit.co/pTuloJmuIn

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

## **Related issues**

Fixes: #

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

Co-authored-by: Cal Leung <[email protected]>
@KrzysztofMoch
Copy link

Just to let you know - this issue will be fixed by next react-native-screens release

@gauthierpetetin gauthierpetetin removed the release-7.12.0 Issue or pull request that will be included in release 7.12.0 label Nov 21, 2023
@github-project-automation github-project-automation bot moved this to To be fixed in Bugs by severity May 15, 2024
@github-project-automation github-project-automation bot moved this to To be fixed in Bugs by team May 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
regression-prod-7.9.1 Regression bug that was found in production in release 7.9.1 regression-RC DEPRECATED: Please use "regresssion-RC-x.y.z" label instead regression-RC-7.11.0 release-7.11.0 Issue or pull request that will be included in release 7.11.0 release-blocker This bug is blocking the next release Sev1-high An issue that may have caused fund loss or access to wallet in the past & may still be ongoing team-mobile-platform type-bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants