App: [$500] [MEDIUM] LHN - Green dot(IOU) disappears from WS conversation in LHN when going offline-online

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.4.16-3 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: @

Action Performed:

⚠️ To reproduce you need an account that has the beta: excludedFromReliableUpdates.

  1. Open New Expensify app
  2. Log in with any account
  3. Create new workspace
  4. Request money on that workspace
  5. Go to offline mode and after a few seconds return to online mode

Expected Result:

The IOU green dot must be present in the LHN in any mode of operation until the IOU request is paid or an IOU error occurs.

Actual Result:

The green dot IOU disappears from the LHN if the user goes offline and comes back online.

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

https://github.com/Expensify/App/assets/115492554/de7c4828-3504-493c-8238-2a0a8fa1674b

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~019c2e500b47b7def2
  • Upwork Job ID: 1738525487918645248
  • Last Price Increase: 2024-01-31

About this issue

  • Original URL
  • State: closed
  • Created 6 months ago
  • Comments: 52 (37 by maintainers)

Most upvoted comments

First of all, this is not a deploy blocker – it’s happening in prod as well:

image

We’re potentially facing the out-of-order Onyx updates again: When coming back online, 2 conflicting responses set report.hasOutstandingChildRequest:

First comes the ReconnectApp that sets it to false via the mergeCollection action: image

Second comes the ReconnectToReport, which should set the value to true, but this value is ignored. I suppose it gets overwritten by the mergeCollection from above similar to what was happening in https://github.com/Expensify/App/issues/28737

image

This particular issue can be fixed by making sure the ReconnectApp returns report.hasOutstandingChildRequest: true (which is correct), but the Onyx issue should be addressed as well.

cc: @Julesssss for the out-of-order updates

I have a fix here https://github.com/Expensify/Auth/pull/9929, I just need to add the tests and I’ll make it ready for review

Considering @paultsimura 's investigation here, I think it may be good to hold on https://github.com/Expensify/App/issues/32583 and check if https://github.com/Expensify/App/pull/32776 fixes this. That PR may help with avoiding fetching outdated Onyx updates.

@Christinadobrzyn not as far as I know, the backend PR wasn’t reviewed by C+

Reproduced in dev, the key is that the account has to have the beta excludedFromReliableUpdates. Accounts under expensifail.com , applause.expensifail.com and some big domains have this, so I guess that explain why @BartoszGrajdek can’t reproduce.

oh, nice! thanks for taking a look @BartoszGrajdek

Hi! I’m Bartosz from Software Mansion, I was working on this issue yesterday (I wanted to run a few more tests today) and I think that it may have been fixed with navigation rework. Following these steps here’s the result:

https://github.com/Expensify/App/assets/41169160/77ceee9a-cceb-44bc-be9f-88df8ccdc354

@alitoshmatov @Christinadobrzyn I can no longer reproduce this on main. Could you please re-test?