Skip to content

[Due for payment 2026-09-11] [Sentry: APP-KCV] Web TypeError navigation.setParams is not a function in useReportActionsNewActionLiveTail #99517

Description

@mountiny

Sentry

https://expensify.sentry.io/issues/APP-KCV

Impact (snapshot at filing)

  • Users (total since first seen): 58
  • Events: 82
  • Users (last 14d): 59 (45 on 9.4.59-5, 13 on 9.4.60-2, 1 on 9.4.61-0)
  • First seen: 2026-08-24
  • Last seen: ongoing
  • Platform: web
  • App version(s): 9.4.59 – 9.4.61
  • Affected route(s) (parameterized): /r/:reportID/:reportActionID
  • Mechanism: generic (React passive effect, caught by an error boundary)

Stack trace (top frames, first-party only)

src/pages/inbox/report/useReportActionsNewActionLiveTail.ts:172
    navigation.setParams({reportActionID: ''});
react-dom-client.production.js (commitHookEffectListMount)
react-dom-client.production.js (commitPassiveMountOnFiber)
react-dom-client.production.js (recursivelyTraversePassiveMountEffects)

Suspected cause

The live-tail jump effect calls navigation.setParams(...) on the object returned by useNavigation(). setParams only exists on the navigation object of a screen. When the hook runs in a tree where useNavigation() resolves to a navigator rather than a screen, setParams is undefined and the effect throws.

The call was introduced in prevent live-tail cleanup from clearing RHP route params (merged 2026-08-21), which replaced the Navigation.setParams singleton call with the hook-derived navigation.setParams. The first Sentry event is 2026-08-24, so this looks like a regression from that PR.

Reproduction

Unknown — see Sentry events linked from the Sentry issue. All events are on the report route with a linked report action, so opening a deep link to a specific message and letting the report finish its initial load is the likely path.

Related

Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. jponikarchuk commented on Sep 1, 2026

    @jponikarchuk

    Deploy Blocker #100006 was identified to be related to the PR #99533 that attempted to fix this issue.

  2. added and removed
    ReviewingHas a PR in review
    on Sep 2, 2026
  3. melvin-bot commented on Sep 2, 2026

    @melvin-bot

    @mountiny @WojtekBoman

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.65-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

  4. melvin-bot commented on Sep 5, 2026

    @melvin-bot

    @WojtekBoman Whoops! This issue is 2 days overdue. Let's get this updated quick!

  5. 9 remaining items

  6. melvin-bot commented on Sep 10, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  7. melvin-bot commented on Sep 10, 2026

    @melvin-bot

    Payment Summary

    Resolving PRs:

    BugZero Checklist (@mallenexpensify)

    • I have confirmed assignees, roles, and Upwork contracts look correct
    • I have paid out Upwork contracts / manual NewDot requests
    • [BugZero Assignee] I have created a GH issue for creating/updating the regression test once above steps have been agreed upon
  8. mananjadhav commented on Sep 12, 2026

    @mananjadhav
    Collaborator

    Contributor+ Checklist:

    • [Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.

      Link to the comment on the PR: prevent live-tail cleanup from clearing RHP route params #98020 (comment)
      Link to the comment on the Issue:

    • [Contributor] 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: NA

    • [Contributor] 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.

    I don't think we need a regression test for this one.

  9. mallenexpensify commented on Sep 14, 2026

    @mallenexpensify
    Contributor

    Claude posting on behalf of Matt:

    $250 to @mananjadhav (Contributor+).

    Contributor Nothing due, @WojtekBoman is flagged Contractor by Melvin
    Contributor+ @mananjadhav due $250 via NewDot, 100%
    Job price $250, standard, no price in title
    Reduction None
    Increase None
    Blockers 1 linked, rebutted
    Precedent None needed, this is the standard path
    Needs a ruling No

    To pay, copy this block and paste it into the comment box:

    ### Payment Summary
    Contributor+: @mananjadhav due $250 via NewDot
    
    How the amount is reached
    PR #99533, author @WojtekBoman
    Size 5 files, +172 / -4
    C+ checklist on this issue Posted by @mananjadhav, all boxes checked
    Reviewer checklist on the PR Posted by @mananjadhav, all boxes checked
    Platform evidence 5 of 5 boxes checked, 1 of 5 carries a video
    • Job price $250. No price in the title, so the standard amount applies.
    • Contributor: nothing due. Melvin flags @WojtekBoman as a Contractor.
    • Contributor+: 100%. The reviewer checklist carries test steps, so the missing-tests rule does not fire, and 5 files with +172 lines is not a minor edit.
    • No regression cut. #100006 was flagged against this PR and rebutted: @mountiny, "Demoting, I dont think this has to be a blocker". Melvin's own analysis found every file in that path byte-identical between production and staging.
    • No increase. 5 files and +172 lines sit below the 25 file and 1000 line thresholds.

    Reported, not deducted: 1 of 5 platforms carries evidence on the reviewer checklist. A count for the record.


    Claude posting on behalf of Matt. PAYRUBRICTEST v2

  10. mallenexpensify commented on Sep 14, 2026

    @mallenexpensify
    Contributor

    @mountiny with this being a Sentry issue, do you want to wait a lil while longer before I pay out?

  11. mountiny commented on Sep 17, 2026

    @mountiny
    ContributorAuthor

    This seems to be resolved so you can pay out

  12. mallenexpensify commented on Sep 17, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor+: @mananjadhav due $250 via NewDot

  13. garrettmknight commented on Sep 24, 2026

    @garrettmknight
    Contributor

    $250 approved for @mananjadhav

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 productionDailyKSv2Task

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions