Skip to content

[Due for payment 2026-09-22] Expense - New Email Not Found via Participant Option #99276

Closed

Description

@applause-bot

If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.


Version Number: v9.4.59-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from BrowserStack: #98020
Email or phone of affected tester (no customers): sintayewhaylu01@gmail.com
Issue reported by: Applause Internal Team
Bug source: Pull Request QA execution
Device used: Windows 10 /Chrome
App Component: Other

Action Performed:

  1. Navigate to staging.new.expensify.com.
  2. Open the Inbox.
  3. Go to FAB → Create Expense → Manual.
  4. Enter any amount and click Next.
  5. In the recipient field, enter a brand-new email address.
  6. Select the email address and click Create Expense.

Expected Result:

The user should be taken to the newly created DM with that user without any errors.

Actual Result:

An “Email not found” error is displayed.

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome Safari

Screenshots/Videos

Bug7239881_1787383270777.bandicam_2026-08-22_09-54-39-983.4.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Julia Ponikarchuk
Bug ID: 7239881

Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. added
    BugSomething is broken. Auto assigns a BugZero manager.
    on Aug 23, 2026
  2. applause-bot commented on Aug 23, 2026

    @applause-bot
    Author

    While Applause doesn't embed attachments for this bug, here are the links for quick view:
    https://platform.applause.com/services/links/v1/external/253fec57cb3e067a1a44c05a82b60cd6fdad2e0b287247f5590cccde1ecd129d

  3. MelvinBot commented on Aug 23, 2026

    @MelvinBot
    Contributor

    Issue Analysis

    Root cause (Medium confidence): The "Email not found" error is not generated by the App frontend — that exact string doesn't exist anywhere in the App source. It's a backend error surfaced in the UI when the money-request is submitted. The App-side flow for a brand-new recipient email is the standard "invite a new user" path and looks correct: it builds an invite option with a client-side placeholder account ID (see generateAccountID → OptionsListUtils/index.ts:2428) and sends the real email as the recipient. The failure happens server-side while resolving that recipient.

    This is a backend/internal issue — the fix is outside the App repo. A separate internal investigation into the money-request handler's recipient (email/account) resolution for brand-new recipients is needed. There's no App code change to recommend here.

    Note — could not reproduce on demand: A fresh reproduction of the exact steps on the latest web build worked correctly (the expense was created and a new DM with the invited email opened, no error). Combined with the report that it is reproducible in staging/production, this points to an intermittent backend condition rather than a consistent failure — which is why a code-only App fix wouldn't address it.

    Investigation details
    • Frontend flow verified (App): FAB → Create expense → Manual → amount → Next → type new email → select invite row → Create expense. The new-email participant is turned into an optimistic invite option (placeholder account ID + login = email) and submitted via the money-request write command with the recipient's email attached. This is the normal invite-new-user pattern used across the app.
    • Error origin: grep of the App source for "Email not found" / emailNotFound returns nothing — the message is thrown by the backend and surfaced verbatim in the UI.
    • Production evidence: The backend "Email not found" exception is a recurring, long-standing error that fires from the money-request/IOU code path (and other server commands) when recipient resolution returns no usable email for the resolved account. It's low-frequency/intermittent, consistent with the on-demand repro passing here.
    • QA source PR: #98020 is "prevent live-tail cleanup from clearing RHP route params" — unrelated to money-request logic; it's just where QA happened to catch this.
    • Reproduction attempt (web): Manual expense to a brand-new email melvintest.newuser…@example.com — succeeded: "Expense added" toast, new Outstanding €5.00 expense, and a new 1:1 DM opened. No error at any step.

    Next Steps for Contributor+ team:
    This needs an internal engineer with backend access to investigate recipient resolution in the money-request handler for brand-new emails. It is not fixable in the App repo, so it should be escalated internally rather than picked up as an App code change.


    view run

  4. added
    ExternalAdded to denote the issue can be worked on by a contributor
    on Aug 23, 2026
  5. melvin-bot commented on Aug 23, 2026

    @melvin-bot

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

  6. melvin-bot commented on Aug 23, 2026

    @melvin-bot

    Unable to auto-create job on Upwork. The BZ team member should create it manually for this issue.

  7. MelvinBot commented on Aug 23, 2026

    @MelvinBot
    Contributor

    Reproduction attempt (web) — bug did not reproduce

    Confirm details before submitting: recipient is the brand-new email, amount EUR 5.00

    Confirm details before submitting: recipient is the brand-new email, amount EUR 5.00

    New DM opened with the invited email showing the EUR 5.00 owed expense - no error, bug did not reproduce

    New DM opened with the invited email showing the EUR 5.00 owed expense - no error, bug did not reproduce

  8. QichenZhu commented on Aug 26, 2026

    @QichenZhu
    Contributor
  9. marufsharifi commented on Aug 26, 2026

    @marufsharifi
    Contributor

    @QichenZhu, i can reproduce this.

    Video_2026-08-26_15-00-03.mp4
  10. marufsharifi commented on Aug 26, 2026

    @marufsharifi
    Contributor
  11. QichenZhu commented on Aug 26, 2026

    @QichenZhu
    Contributor

    I take over this, based on https://expensify.slack.com/archives/C02NK2DQWUX/p1787739729632319

    @mallenexpensify could you please reassign this issue?

  12. mukhrr commented on Aug 26, 2026

    @mukhrr
    Contributor

    @marufsharifi I can also reproduce this. And I think melvin is wrong . this can be fixed on FE

    It blames the money-request handler, but RequestMoney returns jsonCode 200 (carrying the client generated debtorAccountID), and the expense is created fine in the reporter's own video. The error sits in report.errorFields.createChat, which only openReport writes.

    Same OpenReport against staging, three ways:

    • brand-new email + client generated accountID → 666 "Email not found"
    • same email, accountIDList empty → 200
    • same email + the real accountID → 200

    So the email is fine, the account ID we generate locally is what server can't resolve, and that param is FE's. what do you think?

  13. 61 remaining items

  14. added
    Awaiting PaymentAuto-added when associated PR is deployed to production
    and removed on Sep 19, 2026
  15. melvin-bot commented on Sep 21, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  16. melvin-bot commented on Sep 21, 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
  17. mallenexpensify commented on Sep 24, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor: @ahmdshrif paid $250 via Upwork
    Contributor+: @marufsharifi paid $250 via Upwork

    Both, can you please accept the job below? Please reply here and tag me once you have.
    https://www.upwork.com/jobs/~022103233697682561032

  18. ahmdshrif commented on Sep 24, 2026

    @ahmdshrif
    Contributor

    @mallenexpensify Offer accepted.. Thanks.

  19. marufsharifi commented on Sep 24, 2026

    @marufsharifi
    Contributor

    @mallenexpensify, I've accepted the offer. thanks.

  20. mallenexpensify commented on Sep 24, 2026

    @mallenexpensify
    Contributor

    @marufsharifi @ahmdshrif paid, summary updated above. Thx.

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 productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2ExternalAdded to denote the issue can be worked on by a contributor

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions