Expensify: Offline Expense Creation Issue In Reports

by Alex Johnson 53 views

This article dives into a peculiar issue reported in Expensify where users don't land on the "Approve" section by default after creating an expense offline within the "Reports" section. This deviation from the expected behavior can disrupt the user experience, especially for those who frequently manage expenses on the go with intermittent internet connectivity. Let's explore the details of this issue, its impact, and potential workarounds.

Understanding the Issue

The core problem lies in the navigation flow within the Expensify app. Under normal circumstances, when a user navigates to the "Reports" section, they should land on the "Approve" section by default. This is designed to streamline the approval process, ensuring that approvers can quickly access and review pending expenses. However, the reported issue reveals a scenario where this default behavior is overridden.

Specifically, if a user creates an expense while offline within the "Reports" section (specifically in "Reports" > "Reports"), the app fails to navigate back to the "Approve" section upon regaining internet connectivity. Instead, the user remains in the "Reports" > "Reports" section. This unexpected behavior persists even after killing and relaunching the app, indicating a potential issue with how the app manages navigation state after offline actions.

This issue was identified and reported by the Applause Internal Team, highlighting its significance in maintaining a smooth user experience. The bug was observed on version 9.2.67-0 of the Expensify app and is reproducible in the staging environment, confirming its presence in the codebase before reaching production.

Steps to Reproduce

To better understand the issue, let's outline the exact steps to reproduce it. This will help developers and testers to verify the bug and work towards a solution:

  1. Prerequisites: Ensure the user account has at least one workspace and that delayed submissions and approvals are enabled.
  2. Open the Expensify app.
  3. Navigate to the "Reports" section. Notice that you land on the "Approve" section by default.
  4. Navigate to the "Reports" section within "Reports" (i.e., "Reports" > "Reports").
  5. Turn off the internet connection on the device.
  6. Create a manual expense.
  7. Use the device’s back button.
  8. Note that you land on "Approve" again (this is the expected behavior at this point).
  9. Use the device’s back button to return to the "Inbox".
  10. Turn on the internet connection.
  11. Navigate to "Reports" again.
  12. Observe: You land on "Reports" > "Reports" by default instead of "Approve". This is the actual result and the core of the issue.
  13. Kill and relaunch the app.
  14. Navigate to "Reports".
  15. Observe: You are still navigated to "Reports" instead of "Approve", confirming the persistent nature of the bug.

By following these steps, anyone can reliably reproduce the issue and verify the fix once it is implemented.

Expected vs. Actual Result

The discrepancy between the expected and actual results underscores the importance of this issue. The expected result is that when navigating to "Reports", the user should always land on the "Approve" section by default. This aligns with the app's design and user expectations for a streamlined approval workflow.

However, the actual result deviates from this expectation. After creating an expense while offline within "Reports" > "Reports", the user is no longer navigated to the "Approve" section by default. Instead, the app consistently navigates the user to "Reports" > "Reports", even after restarting the application. This inconsistency in navigation can lead to confusion and frustration for users who rely on the default "Approve" landing page.

Impact and User Experience

The impact of this issue on user experience can be significant. Users who frequently create expenses offline, such as those traveling or working in areas with poor connectivity, may find themselves repeatedly navigating to the "Approve" section manually. This adds extra steps to their workflow and can hinder the efficiency of expense management.

Furthermore, the inconsistent navigation behavior can create a sense of unease and lack of predictability within the app. Users may lose confidence in the app's ability to remember their preferences and maintain a consistent experience across different scenarios. This can ultimately lead to decreased user satisfaction and adoption.

Platforms Affected

The issue has been confirmed to affect the following platforms:

  • Android: App
  • Windows: Chrome

While the issue has not been explicitly tested on all platforms, this information provides valuable insight into the scope of the problem. Further testing on other platforms, such as iOS (both App and mWeb) and MacOS (Chrome/Safari/Desktop), may reveal additional instances of the bug.

Potential Workarounds

Currently, there is no known workaround for this issue. Users encountering this bug will need to manually navigate to the "Approve" section each time they access "Reports" after creating an offline expense. This underscores the need for a timely and effective solution from the Expensify development team.

Technical Details and Context

  • Version Number: 9.2.67-0
  • Reproducible in staging?: Yes
  • Reproducible in production?: N/A (new feature, doesn't exist in prod)
  • Regression Test: The issue was caught during regression testing, specifically related to this pull request.
  • Affected Tester: ibellicotest+2134@gmail.com
  • Issue Reported by: Applause Internal Team
  • Device Used: Motorola MotoG60 / Android 12 / Chrome (mWeb / Hybrid app) - Windows 11 / Chrome
  • App Component: Search

The technical details provide valuable context for the development team. The fact that the issue was caught during regression testing indicates the importance of robust testing procedures in identifying and preventing bugs. The affected tester and reporting team provide avenues for further communication and clarification if needed.

Visual Evidence

The provided screenshot/video link offers visual evidence of the issue in action. This can be invaluable for developers in understanding the bug's behavior and developing a fix.

Conclusion

The issue of users not landing on the "Approve" section by default after creating an offline expense in Expensify's "Reports" section presents a significant usability challenge. The inconsistency in navigation can disrupt user workflows and lead to a less-than-ideal experience. While there is currently no known workaround, the detailed steps to reproduce and the comprehensive information provided in this report should enable the Expensify development team to address the issue effectively.

By prioritizing this bug fix, Expensify can ensure a more consistent and intuitive user experience for all, particularly those who rely on offline expense creation. This will contribute to greater user satisfaction and reinforce Expensify's commitment to providing a reliable and efficient expense management solution.

For more information on contributing to Expensify and reporting issues, you can check out their contributing guidelines. You can also explore other open jobs and issues on GitHub related to Expensify here.