Skip to content

[Due for payment 2025-05-22] [$250] Investigate iOS crash: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined #60968

Closed

Description

@thienlnam

Looks similar to this, #57786 but it's come back?

App version:9.1.31 (9.1.31.3)
OS version: iosiOS 18.3.2
Model:iPhone 14
Date:Apr 28, 2025, 7:55:47 AM

Exception in HostFunction: Unhandled JS Exception: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined, stack: getOnboardingInitialPath@386950:39 startOnboardingFlow@386936:85 anonymous@601648:66 processNext@71250:18 _processUpdate@71175:30 anonymous@40356:22 Error: Exception in HostFunction: Unhandled JS Exception: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined, stack: getOnboardingInitialPath@386950:39 startOnboardingFlow@386936:85 anonymous@601648:66 processNext@71250:18 _processUpdate@71175:30 anonymous@40356:22 at validatePathConfig (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:345859:49) at anonymous (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:345871:29) at forEach (native) at validatePathConfig (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:345866:45) at anonymous (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:345871:29) at forEach (native) at validatePathConfig (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:345866:45) at anonymous (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:345871:29) at forEach (native) at validatePathConfig (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:345866:45) at NavigationContainerInner (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:348677:58) at renderWithHooks (/private/var/containers/Bundle/Application/CFBECB19-6DAF-4A05-9B05-2C3BBC539E44/Expensify.app/main.jsbundle:85137:24) at updateForwardRef (/private/var/containers/Bundle/Application/CFBECB19

com.expensify.expensifylite_issue_7e6561266c32bd1eb77ce2c59edd70a4_crash_session_fc203a2f12dc46939c3d147377c84cad_DNE_1_v2_stacktrace.txt

App version:9.1.30 (9.1.30.4)
OS version: iosiOS 18.3.2
Model:iPhone 15 Pro
Date:Apr 22, 2025, 1:58:06 PM

Exception in HostFunction: Unhandled JS Exception: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined, stack: getOnboardingInitialPath@386866:39 startOnboardingFlow@386852:85 anonymous@601459:66 processNext@71250:18 _processUpdate@71175:30 anonymous@40356:22 Error: Exception in HostFunction: Unhandled JS Exception: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined, stack: getOnboardingInitialPath@386866:39 startOnboardingFlow@386852:85 anonymous@601459:66 processNext@71250:18 _processUpdate@71175:30 anonymous@40356:22 at bailoutOnAlreadyFinishedWork (/private/var/containers/Bundle/Application/63FB44C0-318B-496F-B963-27591FC48B86/Expensify.app/main.jsbundle:86360:61) at attemptEarlyBailoutIfNoScheduledUpdate (/private/var/containers/Bundle/Application/63FB44C0-318B-496F-B963-27591FC48B86/Expensify.app/main.jsbundle:86413:40) at beginWork (/private/var/containers/Bundle/Application/63FB44C0-318B-496F-B963-27591FC48B86/Expensify.app/main.jsbundle:86418:159) at performUnitOfWork (/private/var/containers/Bundle/Application/63FB44C0-318B-496F-B963-27591FC48B86/Expensify.app/main.jsbundle:88005:25) at workLoopSync (/private/var/containers/Bundle/Application/63FB44C0-318B-496F-B963-27591FC48B86/Expensify.app/main.jsbundle:87916:55) at renderRootSync (/private/var/containers/Bundle/Application/63FB44C0-318B-496F-B963-27591FC48B86/Expensify.app/main.jsbundle:87900:19) at performConcurrentWorkOnRoot (/private/var/containers/Bundle/Application/63FB44C0-318B-496F-B963-27591FC48B86/Expensify.app/main.jsbundle:87707:160)

com.expensify.expensifylite_issue_42a044f8dfb3b91fac2fea265fd5e1f5_crash_session_3532bcd02b304b729744acf949189841_DNE_1_v2_stacktrace.txt

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021916929894008918195
  • Upwork Job ID: 1916929894008918195
  • Last Price Increase: 2025-04-28
  • Automatic offers:
    • nkdengineer | Contributor | 107097092
Issue OwnerCurrent Issue Owner: @
Issue OwnerCurrent Issue Owner: @NicMendonca

Activity

  1. added
    Help WantedApply this label when an issue is open to proposals by contributors
    ExternalAdded to denote the issue can be worked on by a contributor
    on Apr 28, 2025
  2. melvin-bot commented on Apr 28, 2025

    @melvin-bot
  3. changed the title [-]Investigate `facebook::jsi::JSError` crash[/-] [+][$250] Investigate `facebook::jsi::JSError` crash[/+] on Apr 28, 2025
  4. melvin-bot commented on Apr 28, 2025

    @melvin-bot

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

  5. changed the title [-][$250] Investigate `facebook::jsi::JSError` crash[/-] [+]Investigate iOS crash: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined[/+] on Apr 28, 2025
  6. changed the title [-]Investigate iOS crash: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined[/-] [+][$250] Investigate iOS crash: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined[/+] on Apr 28, 2025
  7. melvin-bot commented on Apr 28, 2025

    @melvin-bot

    ⚠️ This issue has had its price increased by 4x or more. Please review the issue and ensure the price is correct.

  8. melvin-bot commented on Apr 28, 2025

    @melvin-bot

    Upwork job price has been updated to $250

  9. samranahm commented on Apr 28, 2025

    @samranahm
    Contributor

    Proposal

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

    TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined

    What is the root cause of that problem?

    When we call onboardingValues.signupQualifier, onboardingValues itself is undefined at the time we're trying to access it.
    This is why we're crashing — we're trying to read a property signupQualifier of undefined

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

    Here

    const isVsb = onboardingValues && 'signupQualifier' in onboardingValues && onboardingValues.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB;

    const isVsb = onboardingValues && 'signupQualifier' in onboardingValues && onboardingValues.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB;

    const isVsb = onboardingValues && 'signupQualifier' in onboardingValues && onboardingValues.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB;

    we should explicitly check signupQualifier with optional chain

    const isVsb = onboardingValues?.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB;
    const isSmb = onboardingValues?.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.SMB;
    const isIndividual = onboardingValues?.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.INDIVIDUAL;
    ...

    and on other locations where we use signupQualifier
    This way, if onboardingValues is undefined, it will NOT crash, it will just return false.

    What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

    N/A

    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.

  10. melvin-bot commented on Apr 28, 2025

    @melvin-bot

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

  11. 23 remaining items

  12. changed the title [-][$250] Investigate iOS crash: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined[/-] [+][Due for payment 2025-05-22] [$250] Investigate iOS crash: TypeError: TaskQueue: Error with task : Cannot read property 'signupQualifier' of undefined[/+] on May 15, 2025
  13. melvin-bot commented on May 15, 2025

    @melvin-bot

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

  14. melvin-bot commented on May 15, 2025

    @melvin-bot

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.1.45-21 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-05-22. 🎊

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

  15. rayane-d commented on May 22, 2025

    @rayane-d
    Contributor

    BugZero Checklist:

    • Classify the bug:
    Bug classification

    Source of bug:

    • 1a. Result of the original design (eg. a case wasn't considered)
    • 1b. Mistake during implementation
    • 1c. Backend bug
    • 1z. Other: Improvement

    Where bug was reported:

    • 2a. Reported on production
    • 2b. Reported on staging (deploy blocker)
    • 2c. Reported on a PR
    • 2z. Other:

    Who reported the bug:

    • 3a. Expensify user
    • 3b. Expensify employee
    • 3c. Contributor
    • 3d. QA
    • 3z. Other:
    • 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/49586/files#r2101957062

    • If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source 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 it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

    No regression testing is needed since this can be tested only in the development environment.

  16. melvin-bot commented on May 22, 2025

    @melvin-bot

    Issue is ready for payment but no BZ is assigned. @NicMendonca you are the lucky winner! Please verify the payment summary looks correct and complete the checklist. Thanks!

  17. NicMendonca commented on May 22, 2025

    @NicMendonca
    Contributor

    Payment summary

    Contributor: @nkdengineer - $250 paid via UpWork (✅ done!)
    Contributor+: @rayane-d - $250 paid via NewDot

  18. rayane-d commented on May 22, 2025

    @rayane-d
    Contributor

    Requested in ND

  19. garrettmknight commented on Jun 3, 2025

    @garrettmknight
    Contributor

    $250 approved for @rayane-d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2EngineeringExternalAdded to denote the issue can be worked on by a contributor

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions