App
App copied to clipboard
[HOLD for payment 2024-04-15] [$500] IOU - Opening IOU receipt leads to not here page
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: 1.4.59-0 Reproducible in staging?: y Reproducible in production?: n Issue reported by: Applause - Internal Team
Action Performed:
- Go to staging.new.expensify.com
- Go to FAB > Request money.
- Create a manual request with receipt from user that has no unsettled IOU.
- In 1:1 DM, click on the IOU preview.
- Click on the receipt.
Expected Result:
Receipt opens without issue.
Actual Result:
Opening IOU receipt leads to not here page
Workaround:
n/a
Platforms:
Which of our officially supported platforms is this issue occurring on?
- [x] Android: Native
- [x] Android: mWeb Chrome
- [x] iOS: Native
- [ ] iOS: mWeb Safari
- [x] MacOS: Chrome / Safari
- [ ] MacOS: Desktop
Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/19df7681-5aef-4569-9c6f-38420f14966d
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~0170155bec83d697ff
- Upwork Job ID: 1775191991451828224
- Last Price Increase: 2024-04-02
Triggered auto assignment to @iwiznia (DeployBlockerCash
), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.
We think that this bug might be related to #wave-collect - Release 1
:wave: 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:
- Identify the pull request that introduced this issue and revert it.
- Find someone who can quickly fix the issue.
- Fix the issue yourself.
Proposal
Please re-state the problem that we are trying to solve in this issue.
Opening the money request receipt shows not found page.
What is the root cause of that problem?
The condition to show the not found page is checking whether the report parentReportID
is not the same as the transaction reportID
.
https://github.com/Expensify/App/blob/a1801c829b446efcbcb0f91512655939c0535409/src/pages/TransactionReceiptPage.tsx#L62
When this code is made, we can only open the receipt from the transaction thread, so report parentReportID
will point to the IOU/expense report, which is the same as transaction reportID
.
However, after the one transaction report view PR, we are showing the receipt and other money request fields in the IOU report, so the condition is always false because IOU report parentReportID
points to the chat report.
What changes do you think we should make in order to solve the problem?
We should check whether the report is a money request report or not. If it's a money request report, we just take the reportID
, otherwise take the parentReportID
.
const moneyRequestReportID = ReportUtils.isMoneyRequestReport(report) ? report?.reportID : report?.parentReportID;
shouldShowNotFoundPage={(moneyRequestReportID ?? '') !== transaction?.reportID}
@bernhardoj Can you update your solution to cover Track Expense on selfDM?
I don't see the problem with track expense
Just make a track expense with the receipt. And try to open the receipt.
https://github.com/Expensify/App/assets/50919443/86cde24b-bf2e-494d-b81a-3b45952c5ef1
Works fine.
Oh. Looks like a BE issue, then. Please continue here.
Job added to Upwork: https://www.upwork.com/jobs/~0170155bec83d697ff
Triggered auto assignment to Contributor-plus team member for initial proposal review - @dukenv0307 (External
)
Triggered auto assignment to @alexpensify (Bug
), see https://stackoverflow.com/c/expensify/questions/14418 for more details.
PR is ready
confirmed this works on staging as expected now 👍
⚠️ Looks like this issue was linked to a Deploy Blocker here
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
@dukenv0307 can we confirm if this blocker notice is valid or an error? Thanks!
@alexpensify this is not valid the context here https://github.com/Expensify/App/issues/39512#issuecomment-2034977569
Perfect, thank you for the update!
Update: We are waiting for this one to go into production
Reviewing
label has been removed, please complete the "BugZero Checklist".
The solution for this issue has been :rocket: deployed to production :rocket: in version 1.4.60-13 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:
- https://github.com/Expensify/App/pull/39419
If no regressions arise, payment will be issued on 2024-04-15. :confetti_ball:
For reference, here are some details about the assignees on this issue:
- @bernhardoj requires payment (Needs manual offer from BZ)
- @dukenv0307 requires payment (Needs manual offer from BZ)
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
- [ ] [@dukenv0307] The PR that introduced the bug has been identified. Link to the PR:
- [ ] [@dukenv0307] 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:
- [ ] [@dukenv0307] A discussion in #expensify-bugs 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:
- [ ] [@dukenv0307] Determine if we should create a regression test for this bug.
- [ ] [@dukenv0307] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
- [ ] [@alexpensify] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:
@dukenv0307 and @bernhardoj - please submit a request here:
https://www.upwork.com/jobs/~0170155bec83d697ff
On Monday, I can complete the payment process. Thanks!
Applied!
@dukenv0307 and @bernhardoj - please submit a request here:
@alexpensify Thanks, I've applied to the job too
Payment Summary
BugZero Checklist (@alexpensify)
- [x] I have verified the correct assignees and roles are listed above and updated the neccesary manual offers
- [x] I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants/1775191991451828224/hired)
- [ ] I have paid out the Upwork contracts or cancelled the ones that are incorrect
- [ ] I have verified the payment summary above is correct
@dukenv0307 and @bernhardoj - I've sent you offers via Upwork. Please accept and I can complete the payment process.
@alexpensify accepted
Thanks, I was able to complete the payment to @bernhardoj.
@dukenv0307, please accept the offer in Upwork, and I can complete the process. Thanks!
@alexpensify I accepted the UW offer