Skip to main content
Solved

Proper Error Handling

  • April 17, 2024
  • 1 reply
  • 380 views

Forum|alt.badge.img

I’m working on the best way to handle errors in my app, referencing the revenuecat error documentation.

It seems to me that there are broadly four classes of error:

  • `PurchaseCancelledError` - which is simple enough to handle in the UI
  • `NetworkError` - in which a purchase definitely didn’t go through, and I can give my users a chance to retry the purchase
  • Errors related to my code and configuration - in this case, I should display an error message, send an alert to our error logging system, and not allow the user to proceed. 
  • And `StoreProblemError`

The last category of error I find puzzling - `StoreProblemError`. The documentation says that “If everything was working while testing, you shouldn't have to do anything to handle this error in production. RevenueCat will automatically retry any purchase failures so no data is lost.” 

So if I’m reading this correctly, the user will not have an active subscription made immediately, but they will have a subscription made eventually because the revenuecat backend will keep on retrying until the purchase succeeds. So my current strategy for handling this is:

  • Display an error screen to the user and do not  let them retry the purchase
  • Display a message saying that their purchase will go through and we will email them when their subscription is active

This seems like a reasonable thing to do based on my reading of the documents but I wanted to check and see if this is correct.

I’m further confused because in Sandbox testing `StoreProblemError` is the error thrown when I try to make a purchase with the Google Play store using the testing card that always fails. I’m concerned this means that an incorrect or expired credit card will also throw a `StoreProblemError`, in which case they will get the error message that their purchase will eventually go through and this is incorrect. 

Please help me think through this! Thanks.

 

Best answer by jeffrey_bunn

Hi @jacob-lyles, thanks for reaching out. Good questions! 

Both the App Store and Google Play won’t allow a subscription to be purchased more than once. In the case of a `StoreProblemError`, you may want to show a loading and/or error UI to the user, but I would not recommend blocking them from retrying the purchase. Please note that this is not the case for a consumable, so if you’re offering consumables, you may want to think about a blocking UI flow.

This applies to your second question as well. It’s possible that you might receive a `StoreProblemError` in the case of an incorrect/expired credit card from Google Play, but this won’t always be the case. It all depends on what happens outside of RevenueCat in the platform’s purchase flow. As with the above, if you’re providing subscriptions, I wouldn’t recommend implementing a blocking flow, as the platform won’t allow them to subscribe more than once.

I hope this helps!

View original
Did this post help you find an answer to your question?
This post has been closed for comments

1 reply

jeffrey_bunn
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 240 replies
  • Answer
  • April 19, 2024

Hi @jacob-lyles, thanks for reaching out. Good questions! 

Both the App Store and Google Play won’t allow a subscription to be purchased more than once. In the case of a `StoreProblemError`, you may want to show a loading and/or error UI to the user, but I would not recommend blocking them from retrying the purchase. Please note that this is not the case for a consumable, so if you’re offering consumables, you may want to think about a blocking UI flow.

This applies to your second question as well. It’s possible that you might receive a `StoreProblemError` in the case of an incorrect/expired credit card from Google Play, but this won’t always be the case. It all depends on what happens outside of RevenueCat in the platform’s purchase flow. As with the above, if you’re providing subscriptions, I wouldn’t recommend implementing a blocking flow, as the platform won’t allow them to subscribe more than once.

I hope this helps!


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings