Code
32
SDK error · code 32
What it means
productRequestTimedOut (code 32) means the SDK's StoreKit 1 product request (an SKProductsRequest to the App Store) did not finish in time, so offerings have no store prices. It is temporary. Retry loading offerings with a short delay, check the device's connection, and consider the default StoreKit 2 mode, which does not use this request.
Code
32
iOS (Swift)
ErrorCode.product
Android (Kotlin)
No matching code in the Android SDK; see the causes below.
Causes
SKProductsRequest and, when it runs out, cancels the request and fails every waiting caller with this error (ProductsFetcherSK1.swift). Apple describes SKProductsRequest as the object that fetches product information from the App Store.Fix
Call getOfferings again after a short wait. The SDK caches offerings, so a later success covers the next launches.
Test on another network. Product requests need a working path to the App Store.
Leave the SDK on its default StoreKit 2 mode, or set with(storeKitVersion: .storeKit2). It does not use SKProductsRequest.
Simulators can be slow or stuck on product requests. Confirm on a device before you debug further.
In your app
// Swift
do {
let result = try await Purchases.shared.purchase(package: package)
} catch let error as ErrorCode where error == .productRequestTimedOut {
// handle product request timed out
} On RevenueDot: The offerings themselves come from RevenueDot and arrive quickly. This timeout is between the device and the App Store, so no RevenueDot setting changes it.
FAQ
In StoreKit 1 mode the SDK asks the App Store for each product's price and waits a fixed time. If the answer is late, you get productRequestTimedOut. Retry, check the network, or use StoreKit 2.
No. The request goes from the device to the App Store, not to the backend.
In React Native, compare error.code with PURCHASES_ERROR_CODE.PRODUCT_REQUEST_TIMED_OUT_ERROR. In Flutter, convert the PlatformException with PurchasesErrorHelper.getErrorCode(e) and compare the result with PurchasesErrorCode.productRequestTimeout. The Flutter member is spelled productRequestTimeout.
Get started
RevenueDot answers the same SDK calls with the same error codes. Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue.
Already have an account? Sign in · Prefer your own servers? Self-host free