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-12-12] Android & iOS - App crashes after completing onboarding #53431

Closed
4 of 8 tasks
IuliiaHerets opened this issue Dec 3, 2024 · 25 comments
Closed
4 of 8 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

Comments

@IuliiaHerets
Copy link

IuliiaHerets commented Dec 3, 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: 9.0.70-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y
Email or phone of affected tester (no customers): [email protected]
Issue reported by: Applause Internal Team

Action Performed:

Precondition:

  • Create a new account on web but do not complete onboarding.
  1. Launch ND or hybrid app.
  2. On onboarding purpose, choose Manage my team's expenses.
  3. Select organization size.
  4. Select an accounting.
  5. Complete the onboarding.

Expected Result:

App will not crash after completing onboarding.

Actual Result:

App crashes repeatedly after completing onboarding.
Issue happens on Samsung Galaxy Z Fold4 - Android 14

Workaround:

Unknown

Platforms:

  • Android: Standalone
  • Android: HybridApp
  • Android: mWeb Chrome
  • iOS: Standalone
  • iOS: HybridApp
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

0312.txt

Bug6682554_1733192982196.Screen_Recording_20241203_102616_Expensify.mp4

View all open jobs on GitHub

Issue OwnerCurrent Issue Owner: @Christinadobrzyn
@IuliiaHerets IuliiaHerets added DeployBlockerCash This issue or pull request should block deployment Bug Something is broken. Auto assigns a BugZero manager. labels Dec 3, 2024
Copy link

melvin-bot bot commented Dec 3, 2024

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

Copy link

melvin-bot bot commented Dec 3, 2024

Triggered auto assignment to @Christinadobrzyn (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.

Copy link

melvin-bot bot commented Dec 3, 2024

💬 A slack conversation has been started in #expensify-open-source

@melvin-bot melvin-bot bot added the Daily KSv2 label Dec 3, 2024
@github-actions github-actions bot added Engineering Hourly KSv2 and removed Daily KSv2 labels Dec 3, 2024
Copy link
Contributor

github-actions bot commented Dec 3, 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.

@techievivek
Copy link
Contributor

I am unable to reproduce this issue on my end.

@techievivek
Copy link
Contributor

But yes this looks related to #52314

@techievivek
Copy link
Contributor

recording-480.mov

@techievivek
Copy link
Contributor

@IuliiaHerets Can you please re-test this once again, I was unable to reproduce this on my end.

@perunt
Copy link
Contributor

perunt commented Dec 3, 2024

Hi everyone! I'm from the Margelo team and happy to help with this

@mohammedmatar
Copy link

Hello @perunt ! I'm not an official contributor to Expensify, but I've been exploring the issues in the project as part of my learning process. I noticed this issue and wanted to share a potential solution I've come across.

I've implemented a change to address the error by adding the 'worklet' directive to the getTooltipAnimatedStyles function. Here's a summary of the change and its implications:

  1. Added the 'worklet' directive:
    The 'worklet' directive was added to the getTooltipAnimatedStyles function. This directive indicates that the function should be compiled as a worklet for use with React Native Reanimated.

    getTooltipAnimatedStyles: (props: TooltipAnimationProps) => {
        'worklet';
        // ... rest of the function
  2. Purpose of the change:
    This directive indicates that the function should be compiled as a worklet for use with React Native Reanimated, allowing it to run on the UI thread for smooth animations.

  3. Resolving the error:
    This change should address the error that was occurring due to the function not being properly marked as a worklet.

  4. Considerations:
    This solution assumes the use of Reanimated 2 or later.
    It may improve performance for animations and gestures.
    Any values or functions used within this worklet should be compatible with the Reanimated worklet system.

Copy link

melvin-bot bot commented Dec 3, 2024

📣 @mohammedmatar! 📣
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>

@perunt
Copy link
Contributor

perunt commented Dec 3, 2024

@mohammedmatar I'm aware of it, but thank you for your findings :)
I'm trying to understand why WEB works with shared value in useAnimatedStyle without the worklets marker.

@melvin-bot melvin-bot bot added Reviewing Has a PR in review Weekly KSv2 and removed Hourly KSv2 labels Dec 3, 2024
@mohammedmatar
Copy link

i think this is related to

  1. On native platforms (iOS and Android), React Native Reanimated uses a separate JavaScript thread (called the UI thread) to run animations smoothly. This thread requires functions to be marked as worklets to be executed there.

On the web, however, there's no separate UI thread. Everything runs in the main JavaScript thread of the browser.

  1. Worklet Compilation:
    For native platforms, functions marked with 'worklet' are specially compiled to run on the UI thread. This compilation step is skipped for web builds.

  2. Web Implementation:
    On the web, Reanimated uses a different implementation that doesn't require the separation of threads. It can work with regular JavaScript functions without the need for worklet markers.

To summarize, WEB works with shared values in useAnimatedStyle without the worklet marker because the web implementation of Reanimated doesn't require the special threading model used on native platforms. However, for cross-platform consistency and future-proofing, it's generally a good practice to include the worklet marker even if it's not strictly necessary for web.

@mohammedmatar
Copy link

Contributor details
Your Expensify account email: [email protected]
Upwork Profile Link: https://www.upwork.com/freelancers/~01cd25a73544bd05ed

Copy link

melvin-bot bot commented Dec 3, 2024

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

@puneetlath
Copy link
Contributor

puneetlath commented Dec 3, 2024

This seems to be fixed after CP. Though we have a problem with the onboarding modal not always showing up.

@puneetlath puneetlath removed the DeployBlockerCash This issue or pull request should block deployment label Dec 3, 2024
@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Dec 5, 2024
@melvin-bot melvin-bot bot changed the title Android & iOS - App crashes after completing onboarding [HOLD for payment 2024-12-12] Android & iOS - App crashes after completing onboarding Dec 5, 2024
@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Dec 5, 2024
Copy link

melvin-bot bot commented Dec 5, 2024

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

Copy link

melvin-bot bot commented Dec 5, 2024

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.71-2 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-12. 🎊

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

  • @perunt does not require payment (Contractor)

Copy link

melvin-bot bot commented Dec 5, 2024

@techievivek @Christinadobrzyn @perunt 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]

@Christinadobrzyn
Copy link
Contributor

Payment coming up in a few days

@perunt should we have a regression test for this?

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Dec 12, 2024
Copy link

melvin-bot bot commented Dec 12, 2024

Skipping the payment summary for this issue since all the assignees are employees or vendors. If this is incorrect, please manually add the payment summary SO.

@Christinadobrzyn
Copy link
Contributor

Sounds good melvin

@perunt should we have a regression test for this?

@melvin-bot melvin-bot bot added the Overdue label Dec 16, 2024
@Christinadobrzyn
Copy link
Contributor

@techievivek Do you think we need a regression test for this? Or can we just close?

@melvin-bot melvin-bot bot removed the Overdue label Dec 16, 2024
@techievivek
Copy link
Contributor

We don't need to add any additional regression test for this since the app was crashing during loading of LHN itself.

@Christinadobrzyn
Copy link
Contributor

Awesome! Thank you @techievivek!

Closing this out as complete since no payment in ND or Upwork is due.

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
Projects
None yet
Development

No branches or pull requests

6 participants