Closed IuliiaHerets closed 2 months ago
Triggered auto assignment to @trjExpensify (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.
Triggered auto assignment to @NikkiWines (DeployBlockerCash
), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.
:wave: 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:
We think that this bug might be related to #vip-vsb
So strange. Can't reproduce with private domain, can reproduce with public domain:
https://github.com/user-attachments/assets/49aa21f4-5adc-4145-9ffb-cd32a89cfb94
Job added to Upwork: https://www.upwork.com/jobs/~01f33db55519f8fc02
Let's get some eyes on it.
Triggered auto assignment to Contributor-plus team member for initial proposal review - @jayeshmangwani (External
)
Might be related to https://github.com/Expensify/App/pull/46750/ since it changes when/why we show the onboarding modal, will try to reproduce locally now
Onboarding modal is missing in new tab
When we open a new tab, the isOnboardingFlowStatusKnownPromise
promise reset after we call isOnboardingFlowCompleted
here
Then it will never be triggered to open the the onboarding modal.
We should only use resolveOnboardingFlowStatus
to resolve isOnboardingFlowStatusKnownPromise
promise when the onboarding is ready to use.
let resolveOnboardingFlowStatus: () => void;
let isOnboardingFlowStatusKnownPromise = new Promise<void>((resolve) => {
resolveOnboardingFlowStatus = resolve;
});
We will create a global variable onboarding
to store the onboarding data
let onboarding: Onboarding | undefined | [];
Onyx.connect({
key: ONYXKEYS.NVP_ONBOARDING,
callback: (value) => {
if (value === undefined) {
return;
}
if (onboarding === undefined) {
onboarding = value;
resolveOnboardingFlowStatus();
} else {
onboarding = value;
}
},
});
and then use it here
isOnboardingFlowStatusKnownPromise.then(() => {
NA
https://github.com/user-attachments/assets/63208612-399d-49af-afb4-c54dcb3d0d86
@NikkiWines I can raise a PR to fix the issue ASAP.
When we open a new tab, the isOnboardingFlowStatusKnownPromise promise reset after we call isOnboardingFlowCompleted here
@dominictb I don't think this is the root cause. The issue is happening on staging and not in production, so any recent PR may have caused this problem.
@jayeshmangwani We resolved the promise and then reset it here. Then if isOnboardingFlowCompleted
is called after the promise resets, it never triggers because the onboarding in Onyx doesn't change again.
I don't think this is the root cause. The issue is happening on staging and not in production, so any recent PR may have caused this problem.
@jayeshmangwani The changes that @dominictb pointed out in his proposal are recently added in this PR, which is deployed to staging recently :
@fedirjh I tested it after commenting out that code, and I'm still able to reproduce the issue. Have you tested to confirm that it's the cause of this bug?
@jayeshmangwani The changes that @dominictb pointed out in his proposal are recently added in this PR, which is deployed to staging recently :
@fedirjh I've tested it a few times, but I'm not confident that those lines are the cause. Are you sure about this?
Hello, I am the author of PR #46750. I removed my changes and tried to reproduce the bug, and I can still reproduce it even without the changes from my PR.
@jayeshmangwani Did you disable the strict mode?
@jayeshmangwani I just tested and the bug is fixed after reverting the changes and disabling strict mode.
@jayeshmangwani Did you disable the strict mode?
No, let me try it by disabling it
Thanks for the help, @dominictb and @fedirjh. Disabling the strict mode did the trick!
@dominictb's Proposal will solve this issue.
Issue comes from this PR https://github.com/Expensify/App/pull/46559, that was merged recently and it is now in the regression period.
@NikkiWines What do you suggest? How should we proceed?
We should get this back to the C+ and PR author if they're here to fix it, or revert that PR. @DylanDylann @nkdengineer
I will raise a PR to fix this issue.
@DylanDylann The PR is here.
Yeah, ideally let's have this solved by the original PR author - though if we end up using the solution that was posted above, let's be sure to compensate @dominictb accordingly
Removing the DeployBlocker
label as it looks like a frontend issue.
I’m unassigning myself from this issue. @DylanDylann will be handling it
⚠️ 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.
📣 @ishpaul777 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app!
Offer link Upwork job Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻 Keep in mind: Code of Conduct | Contributing 📖
@ishpaul777 reviewed, adding assingment
Fixed with a CP
Reviewing
label has been removed, please complete the "BugZero Checklist".
The solution for this issue has been :rocket: deployed to production :rocket: in version 9.0.18-10 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2024-08-19. :confetti_ball:
For reference, here are some details about the assignees on this issue:
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:
@NikkiWines Should I eligible for compenstation since this https://github.com/Expensify/App/pull/47097 uses my proposal https://github.com/Expensify/App/issues/47054#issuecomment-2275970044?. The only difference is it creates a new function to resolve the onboarding promise.
@dominictb Yes, since the core logic used in the fix is the same, I think some compensation should be provided as the issue had been marked as external
and help wanted
at the time of your proposal being made. @trjExpensify what do you think?
I think we can do a partial payment agreed, so when this comes around, I'll be sure to send an offer for $125.
Ready for payment 🎉
gentle bump @trjExpensify : )
@trjExpensify, @NikkiWines, @ishpaul777 Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
Yup, I've been OoO. Payment summary as follows:
@ishpaul777 paid, @dominictb I've reached out to you for your Upwork profile.
@dominictb offer now sent.
@trjExpensify Offer accepted 🙏
Paid, closing!
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: v.9.0.18-1 Reproducible in staging?: Y Reproducible in production?: N Email or phone of affected tester (no customers): ponikarchuks+98824@gmail.com Issue reported by: Applause Internal Team
Action Performed:
Expected Result:
Onboarding modal is present in new tab
Actual Result:
Onboarding modal is missing in new tab
Workaround:
Unknown
Platforms:
Screenshots/Videos
https://github.com/user-attachments/assets/6395e2b1-0d6e-43a8-9ff1-5d09d2c76df5
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @trjExpensify