Unexpected Resubscribe Flow

  • 18 January 2024
  • 3 replies

Badge +5

I can’t seem to find my flaw that just happened documented (looked here). What I think I have happened in production is this flow, but data tells a slight different story.

The revenue cat dashboard for the customer has this order of events:

But the events that came via the webhook are in this order:

These 2 don’t seem to match exactly. 

How do I tell what happened and if the customer should or not have entitlements at the moment?

Also this means that after an EXPIRATION event, it is possible to receive a RENEWAL event for Play Store as well? The documentation seems to say that this is only for iOS and that Google will always send INITIAL_PURCHASE after an EXPIRATION happened (documented here).

Should I always grant back entitlements to a user when I received a RENEWAL regardless of anything else?

3 replies

Badge +5

In case you are able to see the customer ID is zFJvdHtkE2evnc9fnhtGVNLcDt52

Also what is confusing is that the customer page for this ID has the entitlement listed.. Does it mean it’s active?

Because the Active Customers screen does not list this user…
So where is the final truth about if the customer should have the entitlement enable at this moment in time live?

Userlevel 1
Badge +3

Hi! Thank you for reaching out. I looked into this internally and I think I have the explanation as to what is going on. The renewal event is listed as having occurred on 01-12 in the Customer History, but if you click on the event itself and take a look at the event_timestamp_ms, it actually occurred on 01-18 and RevenueCat backdated it to have occurred when the grace period had started as the “effective” renewal date going forward. Google itself still considered the re-subscription within its window of counting as a renewal, and thus, that is why it was generated as a renewal, rather than an initial purchase like the documentation that you cited states. Because the expiration still occurred within that time before the re-subscription, we still include that expiration event in the Customer History. We will be looking into how to illustrate this potential flow within the documentation. Thank you for bringing this example to us and I apologize for the confusion that it has caused. Since the user did resubscribe, it is correct for them to currently have the entitlement. 

Badge +5

I guess I am still confused. We can set aside what the RC portal shows on the customer history page for now and just look at the webhook events (which match what you have in the RC dashboard once you click each historical event).

31 days after the purchase we got the billing issue with the cancellation. I assume this is where auto-renewal failed. this is when grace period started (I have it set for 3 days in Play Console). 3 days later we got the expiration which seems correct since the grace period elapsed. now 3 more days later we got the renewal. this is where I think it should have been a purchase no? since it is way past the grace period. Could you tell me why you think Google considered Jan 18th event within the grace period? I thought grace starts when the subscription month elapses.
I also now have a SUBSCRIPTION_PAUSED event that seems new and I would like to know if this is indeed from the user or something to look into.

Thank you again for looking into this.