Skip to content
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

[HOLD for payment 2023-11-22] [HOLD for payment 2023-11-13] Expense - Copy to clipboard option for system message for paid expense crashes the app #30796

Closed
6 tasks done
lanitochka17 opened this issue Nov 2, 2023 · 50 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Engineering Weekly KSv2

Comments

@lanitochka17
Copy link

lanitochka17 commented Nov 2, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Version Number: 1.3.95-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:

Issue found when executing PR #30478

Action Performed:

  1. Launch New Expensify app
  2. Go to workspace chat that has paid expense
  3. Tap on the workspace expense
  4. Long press on the system message for paid expense
  5. Tap Copy to clipboard

Expected Result:

App does not crash

Actual Result:

App crashes
Crash is reproducible on Android and iOS.
On web, mweb and desktop app, Copy to clipboard button is not responsive and console error shows up

Workaround:

Unknown

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android: Native
  • Android: mWeb Chrome
  • iOS: Native
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

Bug6261302_1698952944194.Screen_Recording_20231103_031609_One_UI_Home.mp4

logs.txt

View all open jobs on GitHub

@lanitochka17 lanitochka17 added DeployBlockerCash This issue or pull request should block deployment Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Nov 2, 2023
Copy link

melvin-bot bot commented Nov 2, 2023

Triggered auto assignment to @greg-schroeder (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Copy link

melvin-bot bot commented Nov 2, 2023

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)
    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O
    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible
    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@OSBotify
Copy link
Contributor

OSBotify commented Nov 2, 2023

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

Copy link

melvin-bot bot commented Nov 2, 2023

Triggered auto assignment to @marcaaron (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

@marcaaron
Copy link
Contributor

Seems most likely related to the changes here

@ishpaul777
Copy link
Contributor

ishpaul777 commented Nov 2, 2023

we are getting {amount, currency} from originalMessage.IOUDetails while the originalMessage dont have any IOUDetails but has {amount, currency} in itself.

https://github.com/Expensify/App/blob/main/src/libs/ReportUtils.js#L4072

Screenshot 2023-11-03 at 2 20 47 AM

@marcaaron
Copy link
Contributor

2023-11-02_10-50-12

@marcaaron
Copy link
Contributor

Maybe this one then -> #30640 ?

@AmjedNazzal
Copy link
Contributor

@marcaaron why is it related to that? our change was execlusive to safari only, nothing else, so if it was related why would this issue happen on all platform when our code change doesn't even get executed by anything other than Safari?

@marcaaron
Copy link
Contributor

@AmjedNazzal yes, see my next comment. I was taking an educated guess based on the title of the PR.

@marcaaron
Copy link
Contributor

Reverting #30640 fixes the issue.

@ishpaul777
Copy link
Contributor

ishpaul777 commented Nov 2, 2023

I can raise a quick fix PR if requires

Problem

Copy to clipboard option for system message for paid expense crashes the app

Root Cause

we are getting {amount, currency} from originalMessage.IOUDetails while the originalMessage dont have any IOUDetails but has {amount, currency} in itself.

https://github.com/Expensify/App/blob/main/src/libs/ReportUtils.js#L4072

Screenshot 2023-11-03 at 2 20 47 AM

Changes:

First we will check if there is IOUDetails if not we will get amount, currency from originalMessage

 const {amount, currency} = originalMessage.IOUDetails || originalMessage

@cubuspl42
Copy link
Contributor

I approved the PR, but let's keep this issue open until we figure out why we have this {amount, currency} inconsistency and figure out a proper long-term fix.

@Beamanator Beamanator added Daily KSv2 and removed DeployBlockerCash This issue or pull request should block deployment Hourly KSv2 labels Nov 3, 2023
@Beamanator
Copy link
Contributor

Fix should be working in staging, NAB

@greg-schroeder
Copy link
Contributor

@mountiny @marcaaron can you weigh in here as well? thanks!

@ishpaul777
Copy link
Contributor

I think this was a regression and the solution used to resolve this Pr was proposed by me here.

@saranshbalyan-1234
Copy link
Contributor

@ishpaul777 solution is actually a mix of the old pr + reverting old pr
And was done after long investigation and debugging
It wasn't like I saw your proposal and made the fix

@ishpaul777
Copy link
Contributor

ishpaul777 commented Nov 13, 2023

I think the root cause and solution was provided already as this is was a regression and DB offending PR author resolves the issue if available, and as far as i have noticed if PR author choose to go with Proposed solution, 25% of base price is paid to contributor who propose the solution.

Am I right @mountiny?

if we don't decide to pay for this, i will be okay 👍 but i think this is general process we follow for DB.

@cubuspl42
Copy link
Contributor

@ishpaul777

as far as i have noticed if PR author choose to go with Proposed solution, 25% of base price is paid to contributor who propose the solution.

This issue wasn't even ever labeled "External". Thank you for your input, but I would ask you to unsubscribe from notifications here and move on to working on other issues (preferably marked as "External" and "Help wanted"), as we do have guidelines about the lack of any guarantees about posting proposals to internal issues, unnecessary pinging, and other.

@cubuspl42
Copy link
Contributor

cubuspl42 commented Nov 13, 2023

@saranshbalyan-1234

As the previous issue was only paying 125$ which I don't think is suitable for this issue Instead of previous issue, we should keep this one for payment

You misspelled $62.50 🤪

contributing guidelines

a 50% penalty will be applied to the Contributor and Contributor+ for each regression on an issue

We could try arguing, instead, that the schema of the discussed structure was unclear, and we'd like to ask for considering not applying the regression penalty in this case.

@ishpaul777
Copy link
Contributor

ishpaul777 commented Nov 13, 2023

I know that generally Deploy blockers are not external issues but I was just telling the general process i have noticed and experienced in other Deploy blockers, I apologise if I was wrong about the process

@saranshbalyan-1234
Copy link
Contributor

@cubuspl42 hahaha
Let's see what happens
Hoping for something better ;)

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Nov 13, 2023
@mountiny
Copy link
Contributor

it was a regression from @saranshbalyan-1234 PR right? And they raised a fix? then no payment here but also no penalty for regression on the original issue

@saranshbalyan-1234
Copy link
Contributor

@mountiny considering the amount of effort for debugging,
humble request you to Atleast increase it to do 250
I know it was a straightforward change in the beginning, but after the regression have to deep dive a lot.
If you think 125 is the right amount, am completely okay with it with all due respect.

@melvin-bot melvin-bot bot added Daily KSv2 and removed Daily KSv2 labels Nov 13, 2023
@ishpaul777
Copy link
Contributor

ishpaul777 commented Nov 13, 2023

@mountiny is there a guidline on when contributors can expect a bounty for proposing solution to deploy blocker, as DB are high priroty issues if contributor has spent some effort finding root cause and proposed solution is used by Pr author it should be rewarded equally for all issues. Just pointing out because i have seen some issues paid 25% of base price. Currently it's very confusing and sometimes demotivating.

@mountiny
Copy link
Contributor

@ishpaul777 unfortunately the DB are still kind of a grey area in this case and we havent standardized a good approach. Problem is simply that the DBs are regressions from someone elses PR and if we should pay another person $500 + $500 for a C+ review and then we also pay the engineers who cause the deploy blocker, although with a penalty, thats seems like throwing money out of window, doesnt it? At the same time we want to get them fixed asap. So no guidelines as of now, but I think we will try to work on ways to make the treatment of deploy blcookers more transparent and easier to manage.

@saranshbalyan-1234 I understand this took more time to debug, but I believe this should have been caught in the original PR and tested properly all the cases on report actions and copy to clipboard. This caused a crash of the app which is a major regression.

@saranshbalyan-1234
Copy link
Contributor

@mountiny ok😅

@melvin-bot melvin-bot bot added Daily KSv2 and removed Daily KSv2 labels Nov 13, 2023
@ishpaul777
Copy link
Contributor

Totally understandable! I just wanted clarification on why on some DB were paid 25% and some not like this when exact solution is used its demotivating, Please view this as feedback rather than a complaint; I am grateful and satisfied with payments Expensify made for contributions.

@mountiny
Copy link
Contributor

Thank you, we value your contributions, its just not easy to manage the program with so many individual contributors.

@greg-schroeder
Copy link
Contributor

Thanks all for the discussion. Agreed with @mountiny that we need a bit clearer guidelines on DBs... I'll start a convo with the team about this.

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Daily KSv2 labels Nov 15, 2023
@melvin-bot melvin-bot bot changed the title [HOLD for payment 2023-11-13] Expense - Copy to clipboard option for system message for paid expense crashes the app [HOLD for payment 2023-11-22] [HOLD for payment 2023-11-13] Expense - Copy to clipboard option for system message for paid expense crashes the app Nov 15, 2023
@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Nov 15, 2023
Copy link

melvin-bot bot commented Nov 15, 2023

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

Copy link

melvin-bot bot commented Nov 15, 2023

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.99-0 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 2023-11-22. 🎊

After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

  • External issue reporter
  • Contributor that fixed the issue
  • Contributor+ that helped on the issue and/or PR

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

Copy link

melvin-bot bot commented Nov 15, 2023

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:

  • [@cubuspl42] The PR that introduced the bug has been identified. Link to the PR:
  • [@cubuspl42] 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:
  • [@cubuspl42] 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:
  • [@cubuspl42] Determine if we should create a regression test for this bug.
  • [@cubuspl42] 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.
  • [@greg-schroeder] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Engineering Weekly KSv2
Projects
None yet
Development

No branches or pull requests

10 participants