Hi @Houzz!
I was able to take a look at that event ID in our system and confirm that was a backfilled event, which means it was actually created in RevenueCat at the same time as a future transaction, and only the latest transaction would dispatch a webhook or integration event.
The most common case for backfilled events are customers that had a subscription previously then migrated to RevenueCat. RevenueCat will start seeing renewals, and try to backfill any historical renewals back to the initial purchase - but only the latest transaction dispatches events to integrations / webhooks.
In this case, it looks like this is a SANDBOX transaction so it’s possible to see a backfilled event even if the purchase was initiated through RevenueCat if there was some failure on the initial purchase. An example of how this could occur would be:
- Purchase initiated through RevenueCat SDK
- Initial purchase is not recorded in RevenueCat. On a test device especially there could be a lot of reasons for this so I wouldn’t be able to tell you exactly what happened. Maybe the test device lost connection, there was some issue with your configuration that was later fixed, or the Google sandbox server was having issues.
- A few minutes later (because in sandbox) the first renewal happen and RevenueCat successfully detects that. It also sees there was an initial purchase so that now gets recorded.
- An event is only dispatched for the latest transaction
Due to the 5min renewal cycles and the less reliable nature of sandbox environments, I would still expect this to be rare but wayyyy more common in sandbox than production.
Hope this helps!