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

[$1500] Android - Text input in the compose box disappears/reappears erratically when typing a message immediately after launching the app #28562

Closed
1 of 6 tasks
kbecciv opened this issue Oct 1, 2023 · 85 comments
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Engineering Internal Requires API changes or must be handled by Expensify staff Monthly KSv2 Reviewing Has a PR in review

Comments

@kbecciv
Copy link

kbecciv commented Oct 1, 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!


Action Performed:

  1. App must be killed (by OS or manually)
  2. Receive chat message
  3. Tap notification, app opens to message
  4. Start typing
  5. Some of the input is lost
  6. Sometimes the lost input reappears (variable report of this step happening or not)

High traffic accounts are seeing the same problem without the need to start the flow from a notification with the App killed. The theory being that an account with less data in it requires the additional processing that occurs when opening the app from a notification. On a high traffic account the following steps can reproduce the same issue, so let's make sure the solution is tested on this case as well:

  1. Switch to a chat with a lot of history
  2. Start typing immediately
  3. After a couple seconds, it will throw out the last second of typing (so if you typed "abcdefghijklmnop" it would revert back to "abcdef").
  4. This is especially infuriating with voice recognition, as it just stops and throws it out.
  5. The cursor is also often left in a strange place (eg, at the start of the text)
  6. Sometimes it'll do this multiple times
  7. Sometimes the missing part will reappear

Expected Result:

Text input in the composer should not disappear/reappear erratically

Actual Result:

Some of the text input in the composer is lost (and at times reappears)

Workaround:

Unknown

Platforms:

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

  • Android / native
  • Android / Chrome
  • iOS / native
  • iOS / Safari
  • MacOS / Chrome / Safari
  • MacOS / Desktop

Version Number: 1.3.75.2
Reproducible in staging?: Y
Reproducible in production?:
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
Notes/Photos/Videos: Any additional supporting documentation

screen-20231002-141439.2.mp4

Expensify/Expensify Issue URL:
Issue reported by: @quinthar
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1695961777795579

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~011231f7b639cb80f1
  • Upwork Job ID: 1708842016088723456
  • Last Price Increase: 2023-10-16
@kbecciv kbecciv added Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Oct 1, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 1, 2023

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

@melvin-bot
Copy link

melvin-bot bot commented Oct 1, 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

@trjExpensify
Copy link
Contributor

Confirming a couple of things in the thread. Haven't been able to repro myself yet on Android using browserstack.

@Julesssss Julesssss self-assigned this Oct 2, 2023
@Julesssss
Copy link
Contributor

Julesssss commented Oct 2, 2023

I can reproduce on Android, but ONLY when the app is killed (by user or OS):

  • App must be killed (by OS or manually)
  • Receive chat message
  • Tap notification, app opens to message
  • I start typing
  • Some of the input is lost -- it's removed even though it was previously shown
screen-20231002-141439.2.mp4

^ added to description

@trjExpensify trjExpensify changed the title Android - Message displayed with delay in compose box when user starts writing a message immediately Android - Text input in the compose box disappears/reappears erratically when typing a message immediately after launching the app Oct 2, 2023
@trjExpensify
Copy link
Contributor

Niceeee! So I think your repro sounds pretty consistent with DB's bug report. The one diff is that it's unclear if DB's doesn't reappear ever:

sometimes when I go to chat I will type a message and then it will disappear, and then it might reappear later like a second later. This all happens inside the compose box, typically right after I open a chat It feels like the app is still trying to figure something out or do some kind of delayed rendering or something, and so if I open a chat and then immediately start writing a message, that message might act funny in the composed boxville clear and repopulate itself erratically.

I'm going to add that to the issue OP so it's captured, and move this on to be looked into external. Perhaps when we're ready with a PR we can provide a branch build to David to re-test.

@trjExpensify trjExpensify added the External Added to denote the issue can be worked on by a contributor label Oct 2, 2023
@melvin-bot melvin-bot bot changed the title Android - Text input in the compose box disappears/reappears erratically when typing a message immediately after launching the app [$500] Android - Text input in the compose box disappears/reappears erratically when typing a message immediately after launching the app Oct 2, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 2, 2023

Job added to Upwork: https://www.upwork.com/jobs/~011231f7b639cb80f1

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Oct 2, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 2, 2023

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

@burczu
Copy link
Contributor

burczu commented Oct 4, 2023

@trjExpensify @Julesssss Does it mean that to reproduce and test it I need an Android device (or BrowserStack)?

@Julesssss
Copy link
Contributor

It might be possible that it occurs on iOS too. Not sure that anyone has tried to reproduce on iOS yet.

@trjExpensify
Copy link
Contributor

Yeah, feel free to try iOS as well. I wasn't able to repro myself, but Android device for sure is where the bug report is coming from.

@melvin-bot melvin-bot bot added the Overdue label Oct 6, 2023
@trjExpensify
Copy link
Contributor

@burczu are you interested in this one?

@melvin-bot melvin-bot bot removed the Overdue label Oct 6, 2023
@burczu
Copy link
Contributor

burczu commented Oct 9, 2023

Hey @trjExpensify! Sorry, I was focused on other issues... I think I'll ask on Slack if any other C+ would like to take this over from me, because I have quite a lot on me right now and I don't have access to Android device - even if this is reproducible on iOS too, I won't be able to test the solution on all the environments.

@burczu
Copy link
Contributor

burczu commented Oct 9, 2023

@trjExpensify Please assign @allroundexperts instead of me - he is eager to work on this issue.

@allroundexperts
Copy link
Contributor

Taking this one over!

@trjExpensify Are we waiting for proposals here?

@melvin-bot
Copy link

melvin-bot bot commented Oct 9, 2023

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@trjExpensify trjExpensify changed the title [$500] Android - Text input in the compose box disappears/reappears erratically when typing a message immediately after launching the app [$1000] Android - Text input in the compose box disappears/reappears erratically when typing a message immediately after launching the app Oct 9, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 9, 2023

Upwork job price has been updated to $1000

@trjExpensify
Copy link
Contributor

Indeed we are! It has been a week now, so upped the bounty to $1k!

@burczu
Copy link
Contributor

burczu commented Oct 10, 2023

@trjExpensify Regarding this comment: #28562 (comment) plase assign @allroundexperts instead of me - he will take this over from me as C+. Thank you

@Julesssss
Copy link
Contributor

@rinej yep I just started the build.

@Julesssss
Copy link
Contributor

I asked @quinthar to give the AdHoc build a test, lets see how it goes🤞

@rinej
Copy link
Contributor

rinej commented Dec 12, 2023

@Julesssss thanks! @quinthar please let us know after you test it 🤞

@melvin-bot melvin-bot bot added the Overdue label Dec 15, 2023
@quinthar
Copy link
Contributor

I haven't tested it yet, but I actually haven't been experiencing it much on the current staging release either. Performance on Android has massively improved, and it seems like some kind of performance related race condition. So I'm trying to first reproduce it on the "control" version before testing the ad hoc build -- but I'm having trouble seeing it on the control (which is amazing!)

So for this change, is it a good change either way? Does it have any negative side effects? If you think this change is a good one with no negative side effects, then I think we should just ship it anyway, even if it's "merely" more defensive.

Copy link

melvin-bot bot commented Dec 18, 2023

@rinej, @Julesssss, @trjExpensify, @allroundexperts Eep! 4 days overdue now. Issues have feelings too...

@melvin-bot melvin-bot bot added Reviewing Has a PR in review Weekly KSv2 and removed Daily KSv2 Overdue labels Dec 18, 2023
@Julesssss
Copy link
Contributor

David said he hasn't been experiencing this lately, which is good news. Perhaps other perf improvements have resolved this separately.

Regardless, let's move forward with this further perf improvement PR.

@rinej
Copy link
Contributor

rinej commented Dec 18, 2023

Great to hear that! Recently there were many performance improvements :)

I will prepare the PR for review!

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Weekly KSv2 labels Dec 18, 2023
@melvin-bot melvin-bot bot added Monthly KSv2 and removed Weekly KSv2 labels Jan 10, 2024
Copy link

melvin-bot bot commented Jan 10, 2024

This issue has not been updated in over 15 days. @rinej, @Julesssss, @trjExpensify, @allroundexperts eroding to Monthly issue.

P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

@muttmuure
Copy link
Contributor

@trjExpensify I think we need to pay @allroundexperts for this one and then we can close it?

@allroundexperts
Copy link
Contributor

That's correct. Can you write a payment summary and close this?

@trjExpensify
Copy link
Contributor

Ah, the automation didn't run. But it only hit prod two days ago, so we've still got 5 days of the regression period to wait out no?

In the meantime, what did we learn from this and what can we do to minimise a regression here again? Is there any guidance we can provide based on the RCA for future development to help? Thanks!

@trjExpensify
Copy link
Contributor

Bump on the Q above!

@allroundexperts
Copy link
Contributor

@trjExpensify I think the main take away here is to be more mindful about adding code that won't necessarily be useful on other platforms. I think this was too edgy of a case to create a general guideline upon. This was also very difficult to test, so a regression test doesn't make sense either.

@Julesssss
Copy link
Contributor

Yeah I agree with @allroundexperts. This was hard to reproduce, even with high traffic accounts.

@trjExpensify
Copy link
Contributor

I think the main take away here is to be more mindful about adding code that won't necessarily be useful on other platforms.

Do we surface this anywhere in like the Style.md or PR checklist? Increasing the visibility of avoiding platform specific deviations seems like it's worthwhile if not!

@allroundexperts
Copy link
Contributor

Do we surface this anywhere in like the Style.md or PR checklist? Increasing the visibility of avoiding platform specific deviations seems like it's worthwhile if not!

I'm not sure if those contain this already. If not, then I think it won't hurt adding this.

@allroundexperts
Copy link
Contributor

@trjExpensify @Julesssss Can we please have a payment summary here?

@trjExpensify
Copy link
Contributor

Okay cool, I see we have this in the PR review guidelines so we do surface this!

Platform-specific solutions should not be applied to more platforms than necessary

Payment summary:

With that, closing it out!

@JmillsExpensify
Copy link

$1,500 approved for @allroundexperts based on summary above.

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 Internal Requires API changes or must be handled by Expensify staff Monthly KSv2 Reviewing Has a PR in review
Projects
Development

No branches or pull requests