Expensify: Paywall Missing On New Report Creation
Hey guys! We've got a situation where the paywall isn't popping up when it should in Expensify. Here’s the lowdown:
Discussion Category: Expensify, App
Version Number: 9.2.28-0
Reproducible in staging?: Yes
Reproducible in production?: N/A - new feature, doesn't exist in prod
Regression Test Link: https://github.com/Expensify/App/pull/71808
Tester Email: yonghongkok2@gmail.com
Reported by: Applause Internal Team
Device: Mac 15.5 / Chrome
App Component: Money Requests
Issue Summary
The paywall isn't showing when users create a new report from the 'Create report' button, even when they should be prompted to upgrade. This can lead to users bypassing the payment prompt and potentially accessing features they haven't paid for. This issue affects multiple platforms, including Android and iOS apps, as well as desktop environments. Making sure our paywalls work correctly is super important to ensure we're getting paid for the cool features we offer! Let's dive into the steps to reproduce this issue and see what's causing this problem. Understanding the root cause will help us implement a robust solution and prevent similar issues in the future. We need to ensure that our users are properly prompted to upgrade when they reach the limits of their current plan. This not only ensures revenue but also maintains the integrity of our subscription model. The correct display of the paywall is vital for user experience as well. Users should be aware of the features available in different plans and understand the value they are getting for their subscription. This transparency builds trust and encourages more users to upgrade to access advanced features. Therefore, addressing this issue promptly is crucial for both business and user satisfaction. We need to thoroughly test the paywall implementation across all platforms to guarantee a consistent and reliable experience. This includes testing different scenarios, such as users with expired trials, users with workspaces nearing their limits, and users attempting to access premium features without the appropriate subscription. By being proactive and thorough, we can prevent future occurrences of this issue and maintain a high level of quality for our product. Ensuring the paywall functions correctly is not just about preventing unauthorized access; it's also about providing a clear and informative experience for our users, guiding them toward the best subscription plan for their needs. So, let's roll up our sleeves and get this fixed! Understanding the nuances of user behavior and potential edge cases is crucial in ensuring that our paywall functions as intended across all platforms and scenarios. By addressing these issues promptly and thoroughly, we not only safeguard our revenue but also enhance the user experience and build trust in our subscription model. We will continue to monitor and test the paywall implementation to ensure its ongoing effectiveness and reliability.
Steps to Reproduce
To see this in action, follow these steps:
Precondition:
- The account has passed the trial period.
- The account has a workspace with at least one expense.
Steps:
- Go to staging.new.expensify.com.
- Go to a workspace chat with an expense.
- Click Create + > Create report (the paywall opens as expected).
- Open the transaction thread.
- Click Report.
- Click Create report.
Expected Result
The paywall should be displayed, prompting the user to upgrade.
Actual Result
The paywall is not shown when creating a new report from the 'Create report' button, allowing the user to create a new report without upgrading. This unexpected behavior bypasses the intended paywall restriction. This is a significant issue because it allows users to access features that are meant to be behind a paywall without actually paying for them. This can lead to revenue loss for the company and can also create confusion among users about what features are actually included in their subscription. Furthermore, this issue highlights a potential vulnerability in the application's logic for enforcing paywall restrictions. It's crucial to address this issue promptly to prevent further unauthorized access and to ensure that users are properly prompted to upgrade when they reach the limits of their current plan. In addition, this issue may indicate a lack of consistent enforcement of paywall rules across different parts of the application. It's essential to conduct a thorough review of the codebase to identify all instances where paywall restrictions are implemented and to ensure that they are consistently applied. Addressing this issue requires a multi-faceted approach, including debugging the application's code, testing the paywall implementation across different scenarios, and reviewing the overall architecture to identify potential vulnerabilities. By taking these steps, we can ensure that the paywall functions as intended and that users are properly prompted to upgrade when necessary. This will not only protect the company's revenue but will also enhance the user experience by providing clear and consistent information about the features available in different subscription plans. Ultimately, resolving this issue is crucial for maintaining the integrity of our subscription model and ensuring the long-term success of our application.
Workaround
Currently, there is no known workaround. Users are able to bypass the paywall, which isn't ideal, right?
Platforms Affected
- [x] Android: App
- [x] Android: mWeb Chrome
- [x] iOS: App
- [x] iOS: mWeb Safari
- [x] iOS: mWeb Chrome
- [ ] Windows: Chrome
- [x] MacOS: Chrome / Safari
- [x] MacOS: Desktop
Visual Evidence
https://github.com/user-attachments/assets/8ad63dad-6edf-436d-804b-0582d04b84b5
Contributing
Check out our contributing guidelines for onboarding, and email contributors@expensify.com to join our Slack channel!
Want to help out? Here's a link to all open jobs on GitHub: View all open jobs on GitHub
It is important to understand the potential security implications of bypassing paywalls. Such actions can not only lead to financial losses for the company but also expose vulnerabilities that malicious actors could exploit. Therefore, addressing this issue should be a top priority. A thorough investigation into the root cause of the problem is necessary to determine whether it stems from a coding error, a configuration issue, or a more fundamental flaw in the system's architecture. Once the root cause is identified, appropriate measures can be taken to rectify the problem and prevent future occurrences. These measures may include code fixes, configuration changes, or even a redesign of certain aspects of the system. In addition to addressing the immediate issue, it is also essential to implement robust monitoring and alerting mechanisms to detect any future attempts to bypass the paywall. This will enable the company to respond quickly to any potential threats and minimize the risk of financial losses or security breaches. Furthermore, regular security audits and penetration testing should be conducted to identify and address any vulnerabilities in the system's defenses. By taking a proactive approach to security, the company can protect its assets and maintain the trust of its customers. So, let's buckle up and get this fixed! Securing the paywall is not just about preventing unauthorized access; it is also about ensuring the integrity and reliability of the entire system. By addressing this issue promptly and thoroughly, we can strengthen our defenses and protect our business from potential threats.
For more information on Expensify and its features, you can visit their official website: Expensify Official Website. This trusted resource provides detailed insights into their services and offerings.