Expensify: Broken Share Sheet Flow After Search Router Use
Experiencing issues with the share sheet flow in Expensify after using the search router and leaving the app? You're not alone. This document details a bug where opening the search router, leaving the app, and then attempting to share a receipt from your camera roll results in the wrong page appearing.
Before diving in, if you're interested in contributing to Expensify, be sure to check out the contributing guidelines for onboarding. You can also email contributors@expensify.com to request to join the Expensify Slack channel.
Version Number: 9.2.72-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
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: @JmillsExpensify
Slack conversation: #Expensify Bugs
Steps to Reproduce the Issue
Here are the exact steps to reproduce this frustrating issue with the share sheet flow.
- Open the Expensify mobile app on your iOS device. Make sure you're logged in and ready to go.
- Tap on the search router. This is the little magnifying glass icon usually located in the bottom navigation bar. Tapping this will take you to the Search page within the app.
- Leave the app with the Search page open. Don't close the app completely; just switch to another app or return to your home screen. The Expensify app should still be running in the background.
- Go to your camera roll. Open the Photos app on your iOS device and navigate to your camera roll or any album containing images.
- Select a picture of a receipt. Find a receipt image that you want to share with Expensify. Make sure the image is clear and easily readable.
- Tap the share icon. This is the standard iOS share icon, which usually looks like a square with an arrow pointing upwards. Tapping this will bring up the share sheet.
- Choose the Expensify app from the list of available sharing options. Scroll through the list until you find the Expensify app icon and tap on it.
Expected vs. Actual Result
- Expected Result: After tapping the Expensify app in the share sheet, you should see a page where you can either share the receipt to an existing expense report or submit it as a new expense. This page typically allows you to add details, select the report, and finalize the sharing process.
- Actual Result: Instead of the expected share/submit page, you're incorrectly taken directly to the Search page within the Expensify app. This is the same Search page you left open earlier, and it doesn't allow you to share the receipt as intended. This disrupts the expected workflow and forces you to find another way to submit your receipt.
Workaround
Unfortunately, there is currently no known workaround for this issue. The only way to ensure the share sheet flow works correctly is to avoid opening the search router and leaving the app before attempting to share a receipt. This can be inconvenient, especially if you frequently use the search function.
Affected Platforms
This issue has been reproduced on the following officially supported platforms:
- [x] iOS: App
Platforms Tested:
On which of our officially supported platforms was this issue tested:
- [ ] Android: App
- [ ] Android: mWeb Chrome
- [x] iOS: App
- [ ] iOS: mWeb Safari
- [ ] iOS: mWeb Chrome
- [ ] Windows: Chrome
- [ ] MacOS: Chrome / Safari
- [ ] MacOS: Desktop
Visual Evidence
To further illustrate the issue, here's a screenshot/video demonstrating the incorrect behavior:
Add any screenshot/video evidence
Impact and Next Steps
This bug significantly impacts user experience, especially for those who frequently share receipts via the share sheet. The unexpected behavior can lead to confusion and frustration, potentially causing users to abandon the process altogether. It is crucial to address this issue promptly to ensure a smooth and intuitive user experience.
The next steps involve investigating the root cause of the problem. This could involve debugging the app's state management, examining how the share sheet interacts with the app's navigation, and identifying any conflicts or inconsistencies in the code. Once the root cause is identified, a fix can be implemented and thoroughly tested to ensure it resolves the issue without introducing any new problems.
Contributing to the Solution
If you're interested in contributing to the solution, there are several ways to get involved. You can start by reviewing the existing code related to the search router and share sheet functionality. You can also try to reproduce the issue on different devices and platforms to gather more information. Additionally, you can share your findings and insights with the Expensify development team through the appropriate channels, such as the Slack channel mentioned earlier.
Your contributions can help expedite the resolution of this issue and improve the overall quality of the Expensify app. By working together, we can ensure that Expensify remains a reliable and user-friendly expense management solution.
This issue highlights the importance of thorough testing and quality assurance in software development. Even seemingly minor interactions, such as opening the search router and leaving the app, can have unexpected consequences on other features. By carefully testing all possible scenarios, developers can identify and address potential bugs before they impact users.
Conclusion
The broken share sheet flow in Expensify, triggered by opening the search router and leaving the app, is a significant usability issue. While there is no known workaround, understanding the steps to reproduce the bug and its impact is crucial for developers and users alike. Addressing this issue will improve the overall user experience and ensure that sharing receipts remains a seamless process. By contributing to the solution and reporting any further issues, you can help make Expensify a more reliable and user-friendly expense management tool.
For more information about contributing to open source projects, visit GitHub's Open Source Guides.