Skip to content

[Due for payment 2025-05-07] Expense - Report header is blank briefly after opening transaction thread #60391

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

Open
6 of 8 tasks
mitarachim opened this issue Apr 17, 2025 · 15 comments
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Engineering Reviewing Has a PR in review Weekly KSv2

Comments

@mitarachim
Copy link

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.1.29-0
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: No, reproducible on hybrid only
If this was caught during regression testing, add the test name, ID and link from TestRail: Exp
Email or phone of affected tester (no customers): [email protected]
Issue reported by: Applause Internal Team
Device used: Mac 15.3 / Chrome
App Component: Money Requests

Action Performed:

Bug 1:

Precondition:

  • Account has self DM.
  1. Go to staging.new.expensify.com
  2. Go to self DM.
  3. Track a manual expense.
  4. Click on the expense preview.

Bug 2:

  1. Go to staging.new.expensify.com
  2. Open FAB > Create expense > Manual.
  3. Submit two expenses to any user.
  4. Go to transaction thread of any of the submitted expense.

Expected Result:

The transaction thread header will not be blank.

Actual Result:

The transaction thread header is blank briefly.

If the track expense is created offline, the transaction thread header is blank.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug6804432_1744849539455.bug_1.mp4
Bug6804432_1744849539463.bug_2.mp4

View all open jobs on GitHub

@mitarachim mitarachim added Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 DeployBlocker Indicates it should block deploying the API DeployBlockerCash This issue or pull request should block deployment labels Apr 17, 2025
Copy link

melvin-bot bot commented Apr 17, 2025

Triggered auto assignment to @dylanexpensify (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 Apr 17, 2025

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

Copy link

melvin-bot bot commented Apr 17, 2025

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

@github-actions github-actions bot added Engineering Hourly KSv2 and removed Daily KSv2 labels Apr 17, 2025
Copy link
Contributor

👋 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.

@nkdengineer
Copy link
Contributor

nkdengineer commented Apr 17, 2025

Proposal

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

The transaction thread header is blank briefly.

What is the root cause of that problem?

It comes from #58476

We pass policy, parentReportActionParam, personalDetails as undefined here

const title = getReportName(report, undefined, undefined, undefined, invoiceReceiverPolicy);

Which cause canUseDerivedValue is true, and an empty report name is returned

App/src/libs/ReportUtils.ts

Lines 4566 to 4570 in 5e7543e

const canUseDerivedValue = report && policy === undefined && parentReportActionParam === undefined && personalDetails === undefined && invoiceReceiverPolicy === undefined;
if (canUseDerivedValue && reportAttributes?.[report.reportID]) {
return reportAttributes[report.reportID].reportName;
}

So empty UI is displayed based on this condition

{!!report && !!title && (

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

We should pass policy to getReportName function here

const title = getReportName(report, policy, undefined, undefined, invoiceReceiverPolicy);

const title = getReportName(report, undefined, undefined, undefined, invoiceReceiverPolicy);

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

None

What alternative solutions did you explore? (Optional)

We should check reportName is valid here instead of checking the reportAttributes

if (canUseDerivedValue && reportAttributes?.[report.reportID]?.reportName && reportAttributes?.[report.reportID]?.reportName !== CONST.REPORT.DEFAULT_REPORT_NAME) {
    return reportAttributes[report.reportID].reportName;
}

if (canUseDerivedValue && reportAttributes?.[report.reportID]) {

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.

@mollfpr mollfpr removed the DeployBlocker Indicates it should block deploying the API label Apr 17, 2025
@mollfpr
Copy link
Contributor

mollfpr commented Apr 17, 2025

@nkdengineer Thank you for the proposals. I believe we will let the author of the PR fix this issue.

@marcaaron
Copy link
Contributor

@mollfpr Great! Who exactly is that? Are they working on it right now?

@mollfpr
Copy link
Contributor

mollfpr commented Apr 18, 2025

@marcaaron I'll demote this one. I don't think it needs to be a blocker because the bug is minor and it's a duplicate of #60452.

@mollfpr mollfpr added Daily KSv2 and removed DeployBlockerCash This issue or pull request should block deployment Hourly KSv2 labels Apr 18, 2025
@TMisiukiewicz
Copy link
Contributor

Hey, Tomasz from Callstack here, I'll take care of it as an author of the original PR

@melvin-bot melvin-bot bot added Reviewing Has a PR in review Weekly KSv2 and removed Daily KSv2 labels Apr 18, 2025
@TMisiukiewicz
Copy link
Contributor

Opened #60497

@dylanexpensify
Copy link
Contributor

ty!

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Weekly KSv2 labels Apr 24, 2025
@dylanexpensify
Copy link
Contributor

Pending hitting prod

@dylanexpensify
Copy link
Contributor

hit prod! Hm, I think the trigger for payment failed here.

Payment summary:

Contributor+: @hoangzinh $250 via NewDot

Please apply/request!

@dylanexpensify dylanexpensify changed the title Expense - Report header is blank briefly after opening transaction thread [Due for payment 2025-05-07] Expense - Report header is blank briefly after opening transaction thread May 7, 2025
Copy link

melvin-bot bot commented May 7, 2025

Payment Summary

Upwork Job

  • Reviewer: @hoangzinh owed $250 via NewDot
  • Contributor: @TMisiukiewicz is from an agency-contributor and not due payment

BugZero Checklist (@dylanexpensify)

  • I have verified the correct assignees and roles are listed above and updated the necessary manual offers
  • I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants//hired)
  • I have paid out the Upwork contracts or cancelled the ones that are incorrect
  • I have verified the payment summary above is correct

@hoangzinh
Copy link
Contributor

@dylanexpensify No required payment here. It's a regression from our previous PR #60391 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is broken. Auto assigns a BugZero manager. Engineering Reviewing Has a PR in review Weekly KSv2
Projects
None yet
Development

No branches or pull requests

7 participants