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 2024-10-17] [$250] mWeb - Continue button does not work in onboarding modal #50299

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

Comments

@IuliiaHerets
Copy link

IuliiaHerets commented Oct 6, 2024

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: v9.0.45-2
Reproducible in staging?: Y
Reproducible in production?: N/A - new feature, doesn't exist in prod
Issue was found when executing this PR: #47619
Issue reported by: Applause Internal Team

Action Performed:

  1. Go to staging.expensify.com to sign up
  2. Choose "Manage expenses for a small team (1-9)" and get redirected to staging.new.expensify.com.
  3. Enter a business name and press continue

Expected Result:

Continue button works and the onboarding modal navigates to the next page.

Actual Result:

Continue button does not work.

Workaround:

Unknown

Platforms:

  • Android: Native
  • Android: mWeb Chrome
  • iOS: Native
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

Bug6625716_1728155256806.video_2024-10-05_02-08-42.mp4

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021843045414173678587
  • Upwork Job ID: 1843045414173678587
  • Last Price Increase: 2024-10-06
  • Automatic offers:
    • allgandalf | Reviewer | 104307199
Issue OwnerCurrent Issue Owner: @
Issue OwnerCurrent Issue Owner: @dylanexpensify
@IuliiaHerets IuliiaHerets added DeployBlockerCash This issue or pull request should block deployment Bug Something is broken. Auto assigns a BugZero manager. DeployBlocker Indicates it should block deploying the API labels Oct 6, 2024
Copy link
Contributor

github-actions bot commented Oct 6, 2024

👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

  1. Identify the pull request that introduced this issue and revert it.
  2. Find someone who can quickly fix the issue.
  3. Fix the issue yourself.

Copy link

melvin-bot bot commented Oct 6, 2024

Triggered auto assignment to @dylanexpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.

@melvin-bot melvin-bot bot added Daily KSv2 and removed Hourly KSv2 labels Oct 6, 2024
Copy link

melvin-bot bot commented Oct 6, 2024

Triggered auto assignment to @flodnv (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

@carlosmiceli
Copy link
Contributor

I'll assign myself to this one.

@carlosmiceli carlosmiceli assigned carlosmiceli and unassigned flodnv Oct 6, 2024
@carlosmiceli carlosmiceli added External Added to denote the issue can be worked on by a contributor and removed DeployBlocker Indicates it should block deploying the API labels Oct 6, 2024
@melvin-bot melvin-bot bot changed the title mWeb - Continue button does not work in onboarding modal [$250] mWeb - Continue button does not work in onboarding modal Oct 6, 2024
Copy link

melvin-bot bot commented Oct 6, 2024

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

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Oct 6, 2024
Copy link

melvin-bot bot commented Oct 6, 2024

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

@carlosmiceli
Copy link
Contributor

Will see if a contributor can fix this by tomorrow, since I need to leave now (it's Sunday here). Hopefully we can get a proposal/PR early

@ChavdaSachin
Copy link
Contributor

ChavdaSachin commented Oct 6, 2024

Edited by proposal-police: This proposal was edited at 2024-10-07 13:16:07 UTC.

Proposal

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

Continue button does not work in onboarding modal

What is the root cause of that problem?

Redirect links produced by staging.expensify.com in case differs and does not contain signupQualifier parameter while on desktop redirect link has signupQualifier included.

Generated link on android chrome https://staging.new.expensify.com/transition?accountID=18441429&email=sachin.expensify.test%2B1158%40gmail.com&shortLivedAuthToken=200EFA12DEC3685D5C26A2EA6B9B2F527436E9A5EBEB258821F4F5AE8557C444BB6A9E233BE5B3F815F9D830439BEF29E0E8CEC6EDA649E0149674AD79B62BA2D804B836C772813432EFC2241F2F1F8133B457224530877533B53FA5F260EB12FBCD3C68FB3033FCB556B8032B0504476481BDA52B1BF9C1F002F696515FB979AB3CD6296A58F52ED9E40C3632834E60EEB610E9900D60E417FCB38F3448DCB022AFBDD9CC0FAA9A5F112F029A39BD64987A1A386915B631F35571C73544B2A6851715650DB05AAABB48D98BC6C235C909AB3FB9689661C00A4966BB5649E6CFE78DDAA683119773401E3BEA9ACE384C313FE2110F01C377A8BC0B052BA488F64093A7275763BB5BE9C1A89D8B8798D3A991AEF6764A4C013774F8893A125170F9EF8CC566BD6F7BF77096360FBB5A134CF5DA2F947FA54CE00BE7F953F2477F&encryptedAuthToken=oWenOigsc0oJgO%2BTiY3ppHIPT7E3Au3Wnj3rM6t0e3X25d6KnMZb7b6h3IqDChdqnMuLtccXFVa4x278xCrDTl%2F%2F8FwuOvsvYVAVyHe%2FruRm6Z205eJuqYsS4AMJjGGh%2F3yneGPa3JLKmojztgZ1PxKFsaTFNufmJEXVegHLD3WWES1JQDVRneuu%2Bv0tpfUsr0RMpmDn71pZRzr1qMotX8u4zhbDGcSRAXuxbnptW0F1Hhzf%2BwfffVUJ9qwUT%2FrOKfzGGdD0rBjHHfeVs5w9gjvk7J5%2FX%2BR9wHLGjE4cvYvElnIAyXzMT4Hlklv%2F76PBBJTkyU%2F3UMIlivfKKtBMrGrfYAvJiEiYiryBxdTB%2FEVxz1txAg7SYV4meXOW5RElfcqj7pdRksq0JPd0BJsOH1bwCMjgw7xMdX7zIlieSEFTKuR3mWaK3zRk719foWB2ABW6JCj7OBPJJ5x%2FQ9FQEB%2BCJjVqz%2FDQRrVcN6%2BDWDIjsOAri85guzM3jLyJ18o6jnWDMHeYP2kG0Df6OAvfoAXDSyTt7QHU9x2YXzSpXV9mqngRkPxCZnYkkbZ6Kj4hmdRshXVnUHJ%2Fl%2BVoZg1ME7yp%2BLDmUSICXKoCTn%2BR%2F0E4I6lmhff3ABaf%2BlX6Y382cT86m%2F0y1uJYZFuogUF%2FntapTyQkuC%2BMMK%2BEq27gGjQbodnjasDVHp3%2Bs%2ByoLfBZUUIC%2BoWpYGYiZyPDxxHAewLJ%2Btdsc6O9P0V1r79x6TdeeIylRVvJ53rDyq3wLsWB5uCHUAsffof40B0Soxa59QiZKcsptExUhB9oTn9WktScSYDiTvk9%2FXAwoWdUN5U6wDZmrC6U8lVHv135IuaLhmeKfl%2Bf%2Bg5EAw0zBTV7H6EZrNKnKfmQfzfbomEt6rLmnSKGpbVZq4pqNy1B3AE9C5Qp67dCjzFfALhSOgQIL%2FI%3D&exitTo=%2F

And here we use url to fetch signupQualifier but URL does not contain the same in case of mobile devices so none of setOnboardingCustomChoices or setOnboardingPurposeSelected function gets triggered.

let signupQualifier;
if (currentUrl.includes(CONST.QUALIFIER_PARAM)) {
signupQualifier = new URL(currentUrl).searchParams.get(CONST.QUALIFIER_PARAM);
if (signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.INDIVIDUAL) {
Welcome.setOnboardingCustomChoices([CONST.ONBOARDING_CHOICES.PERSONAL_SPEND, CONST.ONBOARDING_CHOICES.EMPLOYER, CONST.ONBOARDING_CHOICES.CHAT_SPLIT]);
}
if (signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB) {
Welcome.setOnboardingPurposeSelected(CONST.ONBOARDING_CHOICES.MANAGE_TEAM);
}
}

Due which onboardingPurposeSelected here is undefined and hence continue button is not functional.
if (!onboardingPurposeSelected) {

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

  • Rather than using URL to fetch signupQualifier we should fetch signupQualifier only from onyx that way we eliminate all other possible scenarios as well where url might not contain signupQualifier.
  • Remove this code
    let signupQualifier;
    if (currentUrl.includes(CONST.QUALIFIER_PARAM)) {
    signupQualifier = new URL(currentUrl).searchParams.get(CONST.QUALIFIER_PARAM);
    if (signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.INDIVIDUAL) {
    Welcome.setOnboardingCustomChoices([CONST.ONBOARDING_CHOICES.PERSONAL_SPEND, CONST.ONBOARDING_CHOICES.EMPLOYER, CONST.ONBOARDING_CHOICES.CHAT_SPLIT]);
    }
    if (signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB) {
    Welcome.setOnboardingPurposeSelected(CONST.ONBOARDING_CHOICES.MANAGE_TEAM);
    }
    }

    and insert following code here
    let signupQualifier = onboardingValues?.signupQualifier;
    if (signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.INDIVIDUAL) {
        Welcome.setOnboardingCustomChoices([CONST.ONBOARDING_CHOICES.PERSONAL_SPEND, CONST.ONBOARDING_CHOICES.EMPLOYER, CONST.ONBOARDING_CHOICES.CHAT_SPLIT]);
    }
    if (signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB) {
        Welcome.setOnboardingPurposeSelected(CONST.ONBOARDING_CHOICES.MANAGE_TEAM);
    }

const currentRoute = navigationRef.getCurrentRoute();

Note

this way we eliminate other possible scenarios where same problem might occur due to use of url.
one of many examples - go to staging.expensify.com, select purpose, and signup but do not complete onboarding on same device. now sign in same account from other device we might face same issue.

What alternative solutions did you explore? (Optional)

Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

@ChavdaSachin
Copy link
Contributor

@carlosmiceli if you are in hurry you could check my proposal right now, I would raise a quick pr.

@carlosmiceli
Copy link
Contributor

@ChavdaSachin Sure, can you send a video please of it working properly before?

@truph01
Copy link
Contributor

truph01 commented Oct 7, 2024

Edited by proposal-police: This proposal was edited at 2024-10-07 16:56:24 UTC.

Proposal

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

Continue button does not work.

What is the root cause of that problem?

  • We already have a logic to set the onboarding purpose selected based on URL's param:

Welcome.setOnboardingPurposeSelected(CONST.ONBOARDING_CHOICES.MANAGE_TEAM);

but because currentUrl.includes(CONST.QUALIFIER_PARAM) can be false, based on BE issue mentioned here, so the Welcome.setOnboardingPurposeSelected(CONST.ONBOARDING_CHOICES.MANAGE_TEAM) is not called. The same RCA that leads to Welcome.setOnboardingCustomChoices([CONST.ONBOARDING_CHOICES.PERSONAL_SPEND, CONST.ONBOARDING_CHOICES.EMPLOYER, CONST.ONBOARDING_CHOICES.CHAT_SPLIT]) is not called in another issue.

  • Because the onboarding purpose selected is not set, so click on "Continue" button will early return in:

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

  • Instead of calling set function based on url's param in:

if (signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.INDIVIDUAL) {
Welcome.setOnboardingCustomChoices([CONST.ONBOARDING_CHOICES.PERSONAL_SPEND, CONST.ONBOARDING_CHOICES.EMPLOYER, CONST.ONBOARDING_CHOICES.CHAT_SPLIT]);
}
if (signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB) {
Welcome.setOnboardingPurposeSelected(CONST.ONBOARDING_CHOICES.MANAGE_TEAM);
}

we can make use of onboardingValues data:

let onboardingValues: Onboarding;
Onyx.connect({

which we use in the getOnboardingInitialPath - this function works properly.

  • About the code changes, we can add:
    const isIndividual = onboardingValues && CONST.QUALIFIER_PARAM in onboardingValues && onboardingValues.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.INDIVIDUAL;
    const isVsb = onboardingValues && CONST.QUALIFIER_PARAM in onboardingValues && onboardingValues.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB;
    if (isIndividual) {
        Welcome.setOnboardingCustomChoices([CONST.ONBOARDING_CHOICES.PERSONAL_SPEND, CONST.ONBOARDING_CHOICES.EMPLOYER, CONST.ONBOARDING_CHOICES.CHAT_SPLIT]);
    }
    if (isVsb) {
        Welcome.setOnboardingPurposeSelected(CONST.ONBOARDING_CHOICES.MANAGE_TEAM);
    }

to this or this.

What alternative solutions did you explore? (Optional)

@twilight2294
Copy link
Contributor

I mistakenly deleted the last branch, New PR here @allgandalf

@allgandalf
Copy link
Contributor

@carlosmiceli I approved the PR yesterday, you can proceed with the merge there

Copy link

melvin-bot bot commented Oct 10, 2024

⚠️ Looks like this issue was linked to a Deploy Blocker here

If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

If a regression has occurred and you are the assigned CM follow the instructions here.

If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

@allgandalf
Copy link
Contributor

allgandalf commented Oct 10, 2024

Note

^ False Flag, I reverted our PR and tested it out, but the issue still occurs, details here , so not a regression from our end

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Oct 10, 2024
@melvin-bot melvin-bot bot changed the title [$250] mWeb - Continue button does not work in onboarding modal [HOLD for payment 2024-10-17] [$250] mWeb - Continue button does not work in onboarding modal Oct 10, 2024
Copy link

melvin-bot bot commented Oct 10, 2024

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

@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Oct 10, 2024
Copy link

melvin-bot bot commented Oct 10, 2024

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.47-4 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 2024-10-17. 🎊

For reference, here are some details about the assignees on this issue:

Copy link

melvin-bot bot commented Oct 10, 2024

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:

  • [@allgandalf] The PR that introduced the bug has been identified. Link to the PR:
  • [@allgandalf] 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:
  • [@allgandalf] 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:
  • [@allgandalf] Determine if we should create a regression test for this bug.
  • [@allgandalf] 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.
  • [@dylanexpensify] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

@dylanexpensify
Copy link
Contributor

Tomorrow!

@allgandalf
Copy link
Contributor

  • The PR that introduced the bug has been identified. Link to the PR: N/A (This was a BE bug)

  • 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: N/A

  • 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: N/A

  • 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.

Regression Test Proposal

  • Go to staging.expensify.com to sign up
  • Choose "Manage expenses for a small team (1-9)" and get redirected to staging.new.expensify.com.
  • Enter a business name and press continue

Verify that: Continue button works and the onboarding modal navigates to the next page.

Do we agree 👍 or 👎

@twilight2294
Copy link
Contributor

twilight2294 commented Oct 16, 2024

Hey, this is ready for payment tomorrow, my upwork is: https://www.upwork.com/freelancers/~012449dd63a43050f7

@dylanexpensify

@dylanexpensify
Copy link
Contributor

@twilight294 looks like that link says profile no longer available

@twilight2294
Copy link
Contributor

sorry, updated the comment please check

@dylanexpensify
Copy link
Contributor

Ah thanks @twilight294! Sent offer!

@twilight2294
Copy link
Contributor

Accepted!!

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Oct 17, 2024
@dylanexpensify
Copy link
Contributor

Done!

@llvee
Copy link

llvee commented Oct 26, 2024

@IuliiaHerets I am interested if you know what the most efficient issues to resolve, receive payment for likely are or have some organisation around this presently?

I would like to contribute, a recent issue I studied that should have taken a few days to resolve, receive payment for spanned over one month time, the solution hasn't been verified & payments haven't been issued. I am interested in helping achieve more efficient resolutions for the remaining issues.

I was suggested to discuss this in Slack, however I am not using Slack right this moment so will try there later.

Copy link

melvin-bot bot commented Oct 26, 2024

📣 @llvee! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

  1. Make sure you've read and understood the contributing guidelines.
  2. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
  3. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
  4. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.
    Screen Shot 2022-11-16 at 4 42 54 PM
    Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

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 Engineering External Added to denote the issue can be worked on by a contributor
Projects
None yet
Development

No branches or pull requests