Expensify / App

Welcome to New Expensify: a complete re-imagination of financial collaboration, centered around chat. Help us build the next generation of Expensify by sharing feedback and contributing to the code.
https://new.expensify.com
MIT License
3.5k stars 2.85k forks source link

The native ios LHN does not match web #51349

Open mountiny opened 1 day ago

mountiny commented 1 day ago

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: Reproducible in staging?: Reproducible in production?: If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: 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: @AndrewGable Slack conversation: https://expensify.slack.com/archives/C05LX9D6E07/p1729272573928429

Action Performed:

Break down in numbered steps

Use the app normally on native ios and on web at the same time throughout the day

Expected Result:

Describe what you think should've happened

The LHN on both platforms will remain in sync

Actual Result:

Describe what actually happened

Some reports are showing as unread on mobile while they do not show up in web

Seems like the only difference between the native mobile and web onyx version is that on native the report data includes the state property whereas the web version does not.

Workaround:

Can the user still use Expensify without this being fixed? Have you informed them of the workaround?

Platforms:

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

Screenshots/Videos

Add any screenshot/video evidence

View all open jobs on GitHub

melvin-bot[bot] commented 1 day ago

Triggered auto assignment to @puneetlath (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.

VickyStash commented 1 day ago

Hi, I'm Viktoryia from Callstack - expert contributor group - and I would like to work on this issue.

VickyStash commented 22 hours ago

Updates for today: I'm actively investigating this issue.

As for now, I haven't found the differences in ios/web LHN, which could cause the described problem.

At the same time, I was able to reproduce a similar issue with different LHN displays on different platforms by playing around with the approval workflows—basically adding and removing the user as an approver.

https://github.com/user-attachments/assets/8b9a25ba-c498-4c85-8e68-f2356e3bea83

In different situations, the Expense Report where the user was removed as an approver can be displayed in LHN or cannot be displayed until you start to search for it, which causes different LHN previews.

puneetlath commented 21 hours ago

Ah good to know! Are you able to pinpoint any API responses or pusher events that are leading to those mis-matches?

VickyStash commented 5 hours ago

Reproduction steps:

Pre-steps:

  1. Open the desktop app and login User A-Admin.
  2. Open the web app and login as User B.
  3. Open the ios app and login as User B, close the ios app.
  4. Open the web app in incognito mode and log in as User C.

Steps:

  1. From User A 1.1 create a workspace 1.2 add User B and User C as members 1.2 enable Workflow feature 1.3 turn on approvals and make the User B approver.
  2. From User B submit the expense to the workspace.
  3. See that for User B the expense appeared in the LHN.
  4. From User A, remove the User B as approver and set the User A as approver.
  5. See, that for User B in the web the expense disappeared in the LHN. It's cleaned out by the pusher update:

image

  1. As User B, go to the Search tab, the expense will be displayed there -> open it. After that it will start to be shown in the LHN on the web.
  2. Open the ios app where we logged in as User B as well. There will be no expense in the LHN. This way the LHN on web and ios looks different.

The video with all of the steps:

https://github.com/user-attachments/assets/578877bf-1910-4afc-9cda-94fe0d741f19

VickyStash commented 3 hours ago

As for the expense endless loading, this is the condition which are causing loading skeleton display: https://github.com/Expensify/App/blob/0288c7ab0cb779387b642c339bcf4513678e9073/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx#L345-L347 So it looks like the ios app didn't have the necessary transaction, but I'm not sure why as for now.

VickyStash commented 2 hours ago

@Beamanator Since you were working on the related functionality, could you please take a look at the comment above? I think the expense report shouldn't disappear from the LHN in this case and should be get by the app if user opens the app.