Caching offerings - how to update offerings

  • 17 November 2021
  • 9 replies

Badge +1

I’ve updated my subscriptions/products in Google Play and restarted my app, but RevenueCat Purchases.getOfferings() never updates with updated titles, descriptions, or pricing. How do I bust the cache to get subscription/product updates?

I have a Flutter app and am running the purchases_flutter: ^3.6.0 package.


Best answer by cody 19 November 2021, 18:09

View original

9 replies

Badge +1

They’ve updated now that I closed and reopened the emulator.

Userlevel 6
Badge +8

Hey @Nathan Zabaldo! 👋

The on-device cache of offerings, as well as PurchaserInfo, lasts for approximately 5 minutes. An app restart will re-fetch the latest offerings from the dashboard, or if you are calling getOfferings often, it will be refresh after that expiration. You can read more about fetching and displaying offerings here:

Badge +3



Does it make sense to put in the documentation for displaying products that there is a 5 minute cache?


Badge +1

On app launch, I get the offerings, which is async and appears to be a network call.

I’d like to have instant access to the cached offering(s), how can I do that using the iOS SDK?

    @objc func getOfferings(completion: @escaping (Offerings?, PublicError?) -> Void) {
self.getOfferings(fetchPolicy: .default, completion: completion)


I’ve looked at persisting `Offering` myself but it doesn’t appear to support Codable or serialization.



still getting old offering packages. for some reason offering packages are not fetching no matter what. (restarted app etc.)


finally solved the issue.
For my case it was ios and you have to sync manually from xcode storekit config file.


To me the caching is taking more than 5 minutes, actually is taking 1~2 hours

Badge +6

I am seeing this too.  I did add a test intro offer, which appeared, but then I have changed it, and I cannot seem to get the new intro offer to appear.  It takes a solid 5 mins



Badge +5

I think this is a pretty major issue. You should be able to pass a “skipCache” boolean or something like that when getting offerings. We are programatically updating users offering when they enter a promo code but I have to get the user to restart the app. Its certainly costing me a couple of percent in doing that!