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

[HOLD for payment 2023-07-12] [$1000] Web - RBR(red dot) for the maximum number of attempts of the resend magic code persists after Successfully adding the Contact method #21220

Closed
1 of 6 tasks
kbecciv opened this issue Jun 21, 2023 · 21 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 External Added to denote the issue can be worked on by a contributor

Comments

@kbecciv
Copy link

kbecciv commented Jun 21, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Action Performed:

  1. Go to Settings > Profile > Contact method
  2. Press New Contact method > Enter any of your email address
  3. Go to the newly added Contact method and Press Resend magic code 5-6 times until we get the error of the maximum number of attempts
  4. Enter the last magic code from the Email
  5. If the magic code worked and then It will navigate back to the Contact Methods page, and we can see the RBR error beside the newly added email

Expected Result:

If the magic code worked, we should remove the red dot error as we can not access the Enter magic code page, so we can not access/remove the error.

Actual Result:

Magic code worked, and we navigated back to the Contact Methods page, but still, we could see the red dot.

Workaround:

Unknown

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android / native
  • Android / Chrome
  • iOS / native
  • iOS / Safari
  • MacOS / Chrome / Safari
  • MacOS / Desktop

Version Number: 1.3.27-6

Reproducible in staging?: y

Reproducible in production?: y

If this was caught during regression testing, add the test name, ID and link from TestRail:

Email or phone of affected tester (no customers):

Logs: https://stackoverflow.com/c/expensify/questions/4856

Notes/Photos/Videos: Any additional supporting documentation

Recording.5070.1.mp4
no-way-to-remove-RBR.1.mov
no-way-remove-RBR.1.mov

Expensify/Expensify Issue URL:

Issue reported by: @jayeshmangwani

Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686751798535969

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~012abf0b985aa6c54b
  • Upwork Job ID: 1673362150600179712
  • Last Price Increase: 2023-06-26
@kbecciv kbecciv added Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Jun 21, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jun 21, 2023

Triggered auto assignment to @sonialiap (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

@melvin-bot
Copy link

melvin-bot bot commented Jun 21, 2023

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)
    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O
    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible
    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@kbecciv
Copy link
Author

kbecciv commented Jun 21, 2023

Proposal

Please re-state the problem that we are trying to solve in this issue.

RBR for the maximum number of attempts of the resend magic code persists after Successfully verifying the magic code

What is the root cause of that problem?

  1. When we press the Resend magic code at that, we time call the requestContactMethodValidateCode method from User.js,

const resendValidateCode = () => {
User.requestContactMethodValidateCode(props.contactMethod);

if the API return the error then we set the error for validateCodeSent to errorFields in failureData

errorFields: {
validateCodeSent: ErrorUtils.getMicroSecondOnyxError('contacts.genericFailureMessages.requestContactMethodValidateCode'),
},

  1. And when we get an error for validateCodeSent, and we do not clear the error by pressing the cross icon from the RBR, we add the correct magic code. At that time validateCodeSent error does not reset to null, and then we do not show the magic code page. However, the validateCodeSent error value is still there, and we can see the red dot beside the contact method.

What changes do you think we should make in order to solve the problem?

We should set the validateCodeSent error to null when we get the success response for the ValidateSecondaryLogin, so that when we successfully validate the contact method and the magic code works, then no need to show the error for a maximum number of magic code requests.

so here we need to add the errorFields: {validateCodeSent: null} to the successData of the ValidateSecondaryLogin

const successData = [
{
onyxMethod: Onyx.METHOD.MERGE,
key: ONYXKEYS.LOGIN_LIST,
value: {
[contactMethod]: {
pendingFields: {
validateLogin: null,
},
},
},
},

    errorFields: {
        validateCodeSent: null,
    }

What alternative solutions did you explore? (Optional)

none

1 similar comment
@jayeshmangwani
Copy link
Contributor

Proposal

Please re-state the problem that we are trying to solve in this issue.

RBR for the maximum number of attempts of the resend magic code persists after Successfully verifying the magic code

What is the root cause of that problem?

  1. When we press the Resend magic code at that, we time call the requestContactMethodValidateCode method from User.js,

const resendValidateCode = () => {
User.requestContactMethodValidateCode(props.contactMethod);

if the API return the error then we set the error for validateCodeSent to errorFields in failureData

errorFields: {
validateCodeSent: ErrorUtils.getMicroSecondOnyxError('contacts.genericFailureMessages.requestContactMethodValidateCode'),
},

  1. And when we get an error for validateCodeSent, and we do not clear the error by pressing the cross icon from the RBR, we add the correct magic code. At that time validateCodeSent error does not reset to null, and then we do not show the magic code page. However, the validateCodeSent error value is still there, and we can see the red dot beside the contact method.

What changes do you think we should make in order to solve the problem?

We should set the validateCodeSent error to null when we get the success response for the ValidateSecondaryLogin, so that when we successfully validate the contact method and the magic code works, then no need to show the error for a maximum number of magic code requests.

so here we need to add the errorFields: {validateCodeSent: null} to the successData of the ValidateSecondaryLogin

const successData = [
{
onyxMethod: Onyx.METHOD.MERGE,
key: ONYXKEYS.LOGIN_LIST,
value: {
[contactMethod]: {
pendingFields: {
validateLogin: null,
},
},
},
},

    errorFields: {
        validateCodeSent: null,
    }

What alternative solutions did you explore? (Optional)

none

@melvin-bot melvin-bot bot added the Overdue label Jun 23, 2023
@sonialiap sonialiap added the External Added to denote the issue can be worked on by a contributor label Jun 26, 2023
@melvin-bot melvin-bot bot changed the title Web - RBR(red dot) for the maximum number of attempts of the resend magic code persists after Successfully adding the Contact method [$1000] Web - RBR(red dot) for the maximum number of attempts of the resend magic code persists after Successfully adding the Contact method Jun 26, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jun 26, 2023

Job added to Upwork: https://www.upwork.com/jobs/~012abf0b985aa6c54b

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Jun 26, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jun 26, 2023

Current assignee @sonialiap is eligible for the External assigner, not assigning anyone new.

@melvin-bot
Copy link

melvin-bot bot commented Jun 26, 2023

Triggered auto assignment to Contributor-plus team member for initial proposal review - @mollfpr (External)

@sonialiap
Copy link
Contributor

triaging to external 👍

@melvin-bot melvin-bot bot removed the Overdue label Jun 26, 2023
@mollfpr
Copy link
Contributor

mollfpr commented Jun 27, 2023

Thanks @jayeshmangwani and the proposal looks good to me 🚀

🎀 👀 🎀 C+ reviewed!

@melvin-bot
Copy link

melvin-bot bot commented Jun 27, 2023

Triggered auto assignment to @deetergp, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

@deetergp
Copy link
Contributor

That seems like the right solution. Hiring @jayeshmangwani.

@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label Jun 28, 2023
@melvin-bot melvin-bot bot added the Reviewing Has a PR in review label Jun 28, 2023
@jayeshmangwani
Copy link
Contributor

@mollfpr PR is ready for review

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Daily KSv2 labels Jul 5, 2023
@melvin-bot melvin-bot bot changed the title [$1000] Web - RBR(red dot) for the maximum number of attempts of the resend magic code persists after Successfully adding the Contact method [HOLD for payment 2023-07-12] [$1000] Web - RBR(red dot) for the maximum number of attempts of the resend magic code persists after Successfully adding the Contact method Jul 5, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jul 5, 2023

Reviewing label has been removed, please complete the "BugZero Checklist".

@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Jul 5, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jul 5, 2023

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.36-5 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2023-07-12. 🎊

After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

  • External issue reporter
  • Contributor that fixed the issue
  • Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

  • Merged PR within 3 business days of assignment - 50% bonus
  • Merged PR more than 9 business days after assignment - 50% penalty

@melvin-bot
Copy link

melvin-bot bot commented Jul 5, 2023

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

  • [@mollfpr] The PR that introduced the bug has been identified. Link to the PR:
  • [@mollfpr] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
  • [@mollfpr] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
  • [@mollfpr] Determine if we should create a regression test for this bug.
  • [@mollfpr] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
  • [@sonialiap] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

@mollfpr
Copy link
Contributor

mollfpr commented Jul 12, 2023

[@mollfpr] The PR that introduced the bug has been identified. Link to the PR:

#15204

[@mollfpr] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

https://github.com/Expensify/App/pull/15204/files#r1261394662

[@mollfpr] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

This can be caught while QA, so the regression step should be enough.

[@mollfpr] Determine if we should create a regression test for this bug.
[@mollfpr] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

  1. Go to Settings > Profile > Contact method
  2. Press New Contact method > Enter any of your email address
  3. Go to the newly added Contact method and Press Resend magic code 5-6 times until we get the error of the maximum number of attempts
  4. Enter the last magic code from the Email
  5. If the magic code worked and then It will navigate back to the Contact Methods page
  6. Check the Added Contact method and verify there is no red dot(RBR) for the contact method
  7. 👍 or 👎

@mollfpr
Copy link
Contributor

mollfpr commented Jul 12, 2023

Melvin forgot to calculate this issue 🤔

The assignment Jun 29
PR merged on Jul 1

@sonialiap
Copy link
Contributor

sonialiap commented Jul 13, 2023

@jayeshmangwani offer sent for reporting issue + fix (+bonus) - paid
@mollfpr offer sent for review (+bonus) - paid

@mollfpr
Copy link
Contributor

mollfpr commented Jul 13, 2023

@sonialiap Accepted, thank you!

@jayeshmangwani
Copy link
Contributor

@sonialiap offer Accepted, Thank you!

@sonialiap
Copy link
Contributor

All paid ✔️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 External Added to denote the issue can be worked on by a contributor
Projects
None yet
Development

No branches or pull requests

5 participants