-
Notifications
You must be signed in to change notification settings - Fork 3k
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 2025-01-02] [HOLD for payment 2024-12-30] [$500] Onboarding flow is not showing upon first sign in #54322
Comments
Job added to Upwork: https://www.upwork.com/jobs/~021869459467806061602 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @s77rt ( |
Triggered auto assignment to @bfitzexpensify ( |
Triggered auto assignment to @stitesExpensify ( |
💬 A slack conversation has been started in #expensify-open-source |
👋 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:
|
I will take it over |
@trjExpensify has confirmed that the OpenApp returns the |
Yep, here's a vid of that: 2024-12-18_19-08-34.mp4 |
Working on it here, #53724 |
Upwork job price has been updated to $500 |
In case this helps others pinpoint the root cause: I tested on all supported platforms, and the onboarding flow modal works correctly on mWeb, native, and desktop. However, on macOS with Chrome and Safari, the onboarding modal does not appear when the browser window is large., if we refresh the page after signup, the modal appears as expected. or If I reduce the window width (narrowLayout) before starting the signup, the modal works fine on both browsers. |
Edited by proposal-police: This proposal was edited at 2024-12-19 11:55:34 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.Describe what actually happened What is the root cause of that problem?After the user signs in, we must wait for the App/src/hooks/useOnboardingFlow.ts Lines 71 to 74 in 0a1f843
And we will reset the root state here App/src/libs/actions/Welcome/OnboardingFlow.ts Lines 47 to 50 in 0a1f843
But at this time, we also have a logic to change the navigation on the App/src/pages/home/ReportScreen.tsx Lines 154 to 163 in 0a1f843
While the param is updating in the route, this Then the onboarding is not added to the navigation stack which causes the bug to occur and that is the reason why it only happens on web/desktop What changes do you think we should make in order to solve the problem?We can have a temporary fix by creating a ref to store the App/src/pages/home/ReportScreen.tsx Lines 154 to 163 in 0a1f843
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?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. |
@mountiny While debugging, I saw we called
When I log the
I wrote a proposal here based on what I logged but I cannot verify this now because |
@nkdengineer Thanks for the proposal but it doesn't answer why this works on mWeb? |
I think this is what happen. Looking at the code,
Here, we pass the state to The
App/src/libs/actions/Welcome/OnboardingFlow.ts Lines 47 to 51 in 154a485
It makes This can easliy be reproduced with this code.
|
Just FYI, we are looking into this issue with SWM's navigation experts. We suspect it comes from a PR where native stacks were introduced. We'll keep you updated |
The bug may simply be due to the nature of dispatching events being async: navigationRef.resetRoot({
routes: [
{
name: 'BottomTabNavigator',
},
{
name: 'OnboardingModalNavigator',
path: '/onboarding',
},
],
index: 1,
});
console.log("rootstate", navigationRef.getRootState()); // <- This is not updated yet and contains the old state
navigation.setParams({report: 123}); // <- Thus this will also use the outdated state |
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. |
@adamgrzybowski @WojtekBoman Seems like the solution we applied for now is just a hot fix but the root cause is else where. Could you take this on to chase down the root cause? Thanks! |
PR being CPed, will be validated on the checklist |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.77-6 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-12-30. 🎊 For reference, here are some details about the assignees on this issue:
|
@s77rt @bfitzexpensify @s77rt The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button] |
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.78-6 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 2025-01-02. 🎊 For reference, here are some details about the assignees on this issue:
|
@s77rt @bfitzexpensify @s77rt The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button] |
BugZero Checklist:
Bug classificationSource of bug:
Where bug was reported:
Who reported the bug:
Regression Test Proposal Template
Regression Test ProposalPrecondition:Test:Do we agree 👍 or 👎 |
Payment summary: $500 paid to @nkdengineer for contributor work ✅ |
$500 approved for @s77rt |
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:
Reproducible in staging?:
Reproducible in production?:
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
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
Expensify/Expensify Issue URL:
Issue reported by:
Slack conversation (hyperlinked to channel name):
Action Performed:
Break down in numbered steps
Expected Result:
Describe what you think should've happened
The modal should be shown first upon signing the user should not be allowed to skip it
Actual Result:
Describe what actually happened
The user is not presented with the modal
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
2024-12-18_11-11-20.mp4
Add any screenshot/video evidence
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @bfitzexpensifyThe text was updated successfully, but these errors were encountered: