Solved

Offerings returned empty on iOS 14 - RCPurchasesErrorDomain Code=23

  • 3 December 2021
  • 41 replies
  • 6350 views

Badge +5

We seem to be getting a `Domain=RCPurchasesErrorDomain Code=23` error when trying to retrieve offerings on iOS 14. The full log is as follows:

2021-12-03 10:22:16.648693+0200 Today[34769:534081] [Purchases] - ERROR: SKRequest failed: UNKNOWN_ERROR2021-12-03 10:22:16.649045+0200 Today[34769:491827] [Purchases] - ERROR: Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).This could be due to a timeout, or a problem in your configuration.More information: https://rev.cat/why-are-offerings-empty" UserInfo={NSLocalizedDescription=None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).This could be due to a timeout, or a problem in your configuration.More information: https://rev.cat/why-are-offerings-empty, readable_error_code=CONFIGURATION_ERROR}

The same procedure appears to be working properly on iOS 15 and the setup on both RC dashboard and App Store Connect appears to be correct. Any ideas on where this is coming from or what we can do to resolve it?

icon

Best answer by ryan 26 January 2022, 21:45

View original

41 replies

Userlevel 5
Badge +9

From the error message, it could be something with the StoreKit Configuration file as well. If you’re making changes to the build target (iOS 14 vs iOS 15) you may need to re-upload the public certificate to the RevenueCat dashboard: https://docs.revenuecat.com/docs/apple-app-store#step-4-uploading-the-public-certificate-to-revenuecat

Testing on a physical device could also help and is what I always try to recommend. 

 

 

Badge +5

Hello Ryan and thanks for the response. We did re-upload the certificate but to no avail unfortunately, the error still persists. We have also tried on device and still getting the same behaviour. Any other ideas?

Userlevel 5
Badge +9

Hmmm that’s strange it’s not working on a physical device it sounded like a StoreKit config issue being OS specific. I logged into App Store Connect recently and noticed they did update the Paid Applications Agreement, so you could triple check that document is signed since it could cause things to suddenly break. 

That specific error indicates that the product IDs configured in RevenueCat are not available through StoreKit, so something in this article is most likely the underlying cause: 

 

Badge +5

Hey, Ryan. The paid applications agreement is active on our account and no updates appear to be available. We went through the article but everything appears to be correctly setup on both ASC and RC as far as we can understand. It’s weird that we can reproduce this only on iOS 14 and not on iOS 15, so I guess that the general setup should be fine. Is there anything iOS 14 specific that we need to be aware of?

Userlevel 5
Badge +9

@Neybox Digital can you confirm the SDK platform and version that you’re running? It should be one of the first debug log outputs. I’m going to try and build our sample app and see if I hit this. Never heard of an OS specific issue fetching products on a physical device.

Badge +5

@ryan we’re using Purchases iOS SDK v.3.13.1. Thanks for looking into this :) 

Badge +7

I’m getting the same. 10 or so different users. iPad and iPhone. All on iOS 15. Seemed to start at Dec 15, 2021, 9:14:41 PM. All App Store Connect forms signed. 

 

Non-fatal Exception: FlutterError
0  ???                            0x0 StandardMethodCodec.decodeEnvelope + 607 (message_codecs.dart:607)
1  ???                            0x0 MethodChannel._invokeMethod + 156 (platform_channel.dart:156)
2  ???                            0x0 Purchases.getOfferings + 125 (purchases_flutter.dart:125)
3  ???                            0x0 PurchaseController._initRevenueCat + 57 (purchase_logic.dart:57)

 

PlatformException(23, None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). This could be due to a timeout, or a problem in your configuration. More information: https://rev.cat/why-are-offerings-empty, {code: 23, message: None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). This could be due to a timeout, or a problem in your configuration. More information: https://rev.cat/why-are-offerings-empty, underlyingErrorMessage: , readable_error_code: CONFIGURATION_ERROR, readableErrorCode: CONFIGURATION_ERROR}, null). Error thrown null.

 

 

Badge +1

Same issue here, 

ERROR: 🍎‼️ Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "There's a problem with your configuration. There are no products registered in the RevenueCat dashboard for your offerings. To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings.

More information: https://rev.cat/why-are-offerings-empty" UserInfo={NSLocalizedDescription=There's a problem with your configuration. There are no products registered in the RevenueCat dashboard for your offerings. To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings.
 

Error happens on both iOS 14 and 15 on real devices. Set up works fine using StoreKit configuration file and prints this error when fetching products when removing the configuration file from our schema. Products are all ready to submit and all App Store connect forms and documents are up to date. 

Edit: Using SDK Version - 3.13.1

Badge +7

I think this has something to do with revenuecat being blocked on some WiFi networks.

Badge +1

Hello, I have the same issue. Everything works correctly on iOS 15. When I run the app on an iOS 14 simulator, I get following error:

Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).

This could be due to a timeout, or a problem in your configuration.

My project setup is:

  • SDK Version 3.13.2 integrated via SPM
  • macOS Monterey
  • MacBook Pro with M1 Pro
  • Xcode 13.2.1 (13C100)

Unfortunately I don’t have access to a device with iOS 14, so I cannot test it on a real device. But the fact that the SDK is working on iOS 15 simulator and it isn’t working on iOS 14 simulator is worrying to me.


@ryan Do you have any updates on the situation? Thanks in advance.

Badge

I am seeing this error in production on a range of iOS versions. It does not impact most of my users but I am not sure why it is impacting the ones it is. Any insight would be valuable.

Userlevel 5
Badge +9

This happens in production when the SKProductsRequest fails: https://developer.apple.com/documentation/storekit/skproductsrequest

Usually pretty rare, but sometimes there’s moments of higher unavailability. There’s no network request on the RevenueCat side so we don’t have a ton of insights into the error rate at scale since we don’t log anything.

Badge

Thanks Ryan, I am seeing a growing number of this error. Retrying does not resolve the problem. If there is no network request why does the error mention a potential timeout?

PlatformException(23, None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).This could be due to a timeout, or a problem in your configuration.More information: https://rev.cat/why-are-offerings-empty, {code: 23, message: None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).This could be due to a timeout, or a problem in your configuration.More information: https://rev.cat/why-are-offerings-empty, underlyingErrorMessage: , readable_error_code: CONFIGURATION_ERROR, readableErrorCode: CONFIGURATION_ERROR}, null)

 

A configuration error also seems unlikely because this is working for most users. This error started happening after updating the Flutter SDK to 3.8.0. 

Userlevel 5
Badge +9

If there is no network request why does the error mention a potential timeout?

Sorry, no network request to RevenueCat - the timeout is on SKProductRequest that connects to Apple. 

 

A configuration error also seems unlikely because this is working for most users.

Yeah, configuration issue would be 100% failure. This is most common in sandbox if something isn’t hooked up right which is why we link to that article in the error message - I don’t think it’s applying in your case if you’re seeing it randomly in production.

 

The RevenueCat SDKs used to not return an error in these cases and products/offerings would just be null if they couldn’t be retrieved. We added an error response toward the end of last year so the getOfferings call would return an error: https://github.com/RevenueCat/purchases-ios/pull/879. This way would could provide a more useful message to developers and the end result is still the same - offerings are empty. This could explain why you started seeing it only after updating the SDK. The empty Offerings have always been happening but now you have visibility into it with an error being returned? 

Badge

@ryan Thank you for the clarification. 

It sounds like resolving this error might not be something you can do. My in app offerings do not really change. If I configured an alternative way to fetch them so that I can display them to my users what would happen if a user tried to purchase them and I passed a valid product id to the revenue cat sdk even though it was not loaded via the revenuecat get offerings API?

Userlevel 5
Badge +9

Hey @Larry McKenzie,

Unfortunately there is no way to construct an SKProduct yourself, which is the object required by Apple to make an in-app purchase, and what RevenueCat sets under-the-hood as the “Package” in an Offering. The only way to get SKProducts are by fetching them via the SKProductRequest. Any app you see with in-app purchases on iOS must use this same method. They need to be fetched from Apple so they can set them to the correct price and currency of the underlying Apple account logged in on the device and confirm it’s a valid product configured in App Store Connect.

 

what would happen if a user tried to purchase them and I passed a valid product id to the revenue cat sdk even though it was not loaded via the revenuecat get offerings API?

If you use the .purchaseProduct() method, you’ll need to pass in the SKProduct directly so you would still need to fetch it from Apple first.

Badge +1

Getting the same issue for an macOS App today, suddenly can’t fetch any in-app purchases in a simulator, do we have a solution now? Thanks a lot in advance!

 

ERROR: 🍎‼️ Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).

This could be due to a timeout, or a problem in your configuration.

 

Userlevel 5
Badge +9

@Leon the App Store servers had some issues today which could be related. To clarify, this error is either caused by a configuration issue in App Store Connect or some connection issue on Apple’s servers.

Badge +1

@Leon the App Store servers had some issues today which could be related. To clarify, this error is either caused by a configuration issue in App Store Connect or some connection issue on Apple’s servers.

Thanks Ryan, it’s back to work now, I guess it is indeed related with Apple service outage!

 

Userlevel 5
Badge +9

Nice! We can’t track the rate of this failure from Apple too precisely since it’s a device-side error but their sandbox receipt server (which we can monitor) was a mess today which means things were choppy in Cupertino

 

Badge +1

Getting the same issue for on iOS 5, do we have a solution now? Thanks a lot in advance!

 

Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). This could be due to a timeout, or a problem in your configuration.

Badge

Also experiencing the same issue on a revenue cat install - I am a new user, but getting this error 23 on both simulator and on-device built from Xcode. 

Badge +3

Our subscription offering in iOS flutter stopped working, exisitng subscribers are not getting the benefits. How can be fix this, we are losing customers because of this. Can you please help to resolve this?

Badge

React Native Error on IOS:

None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used)

Badge +1

I’m seeing the same thing today on all iOS 14 simulators (14.0.1, 14.2), but not on any 15+ simulators. Here are my logs:

2022-04-08 02:56:59.779650-0700 josh[81700:2917292] [Purchases] - ERROR: 🍎‼️ SKRequest failed: UNKNOWN_ERROR
2022-04-08 02:56:59.779993-0700 josh[81700:2916956] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).
This could be due to a timeout, or a problem in your configuration.
More information: https://rev.cat/why-are-offerings-empty" UserInfo={NSLocalizedDescription=None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).
This could be due to a timeout, or a problem in your configuration.
More information: https://rev.cat/why-are-offerings-empty, readable_error_code=CONFIGURATION_ERROR}
2022-04-08 02:56:59.781654-0700 josh[81700:2916956] [josh] 🔴 PurchasesService:303 problem requesting offerings: None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).
This could be due to a timeout, or a problem in your configuration.
More information: https://rev.cat/why-are-offerings-empty
2022-04-08 02:56:59.781817-0700 josh[81700:2916956] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).
This could be due to a timeout, or a problem in your configuration.
More information: https://rev.cat/why-are-offerings-empty" UserInfo={NSLocalizedDescription=None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).
This could be due to a timeout, or a problem in your configuration.
More information: https://rev.cat/why-are-offerings-empty, readable_error_code=CONFIGURATION_ERROR}

I don’t have a device to confirm with, unfortunately, but I can confirm the same bug across multiple apps with different RevenueCat projects.

Reply