What does StoreKitError.unsupported mean?

StoreKitError.unsupported means the operation you called does not support this product.

Quick facts#

Error StoreKitError.unsupported
Where StoreKit 2, Swift (StoreKitError)
Available since iOS 18.4, iPadOS 18.4, macOS 15.4, tvOS 18.4, watchOS 11.4, visionOS 2.4
What the vendor says The operation does not support this product.

Cause#

  • Apple says the system raises this error when the type that starts the request does not support the operation. Its example is creating an object with the product ID of an In-App Purchase that is not registered as a generic SKU in App Store Connect.
  • The case is new: it exists from iOS 18.4 and macOS 15.4, so you only see it on those systems or later, and only when you build with an Xcode that includes it.
  • Apple lists no other trigger, so check the product type before you blame the network.
  • Apple's page for the case shows the platform versions above, which is why the SDK guards it behind a newer compiler.

Fix#

  1. Check how the product is registered in App Store Connect and whether the API you called is meant for that type of product.
  2. Use a different API for the product, or register the product the way the API requires.
  3. Build with an Xcode version that knows the case, or the error can arrive in old code as an unknown error.
  4. Log the product ID and the call that threw the error.

Example#

Swift
import StoreKit

// Raised on iOS 18.4 and later when the call does not support the product; log the ID so you can fix the registration.
func load(ids: [String]) async {
    do {
        let products = try await Product.products(for: ids)
        print("Loaded \(products.count) products")
    } catch StoreKitError.unsupported {
        print("StoreKit says the operation does not support one of these products: \(ids)")
    } catch {
        print("Load failed: \(error)")
    }
}

Compile-checked: npm run check:snippets type-checks this snippet with swiftc against the Apple SDK (macOS target, checked 2026-10-03).

How the RevenueDot SDK reports it#

The RevenueDot purchases-ios fork maps StoreKitError.unsupported to ErrorCode.purchaseInvalidError (code 4) when it is built with Swift 6.1 or later. See what purchaseInvalidError means in the SDK.

Source#

Checked: 2026-10-03

Edit this page on GitHub ↗ View as Markdown Last updated