SDK error · code 30

systemInfoError (error code 30): System info error

What it means

systemInfoError (code 30) is reserved for a problem with the system information the SDK reads, but no code path in the current iOS or Android SDK source raises it. If it shows up, it comes from another layer or an older SDK. Capture the message and underlying error, update the SDK, and do not grant access.

Code

30

iOS (Swift)

ErrorCode.systemInfoError

Android (Kotlin)

No matching code in the Android SDK; see the causes below.

Causes

Why the SDK returns systemInfoError

  • The iOS error helper systemInfoError(withMessage:error:) exists, but no call site in the current iOS SDK source uses it (ErrorUtils.swift).
  • The Android SDK enum has no member for code 30 (PurchasesErrorCode.kt).
  • An older or newer SDK build, or a wrapper layer such as React Native or Flutter, may still raise it.

Fix

How to fix systemInfoError

  1. 01

    Capture the full error

    Log the message, the userInfo or underlyingErrorMessage, and the SDK version.

  2. 02

    Update the SDK

    Move to the latest release of the SDK and its wrapper, then reproduce.

  3. 03

    Turn on debug logs

    Set the log level to debug and read the lines before the error. They show which call produced it.

  4. 04

    Report it

    If it still appears on a current SDK, open an issue with the log lines and the device model.

In your app

How to handle it in code

  • Do not retry in a loop. One retry after an SDK update is enough to learn more.
  • Show a generic error. Customers cannot fix it.
  • Do not grant access from the error.
Match the errorSwift
// Swift
do {
  let result = try await Purchases.shared.purchase(package: package)
} catch let error as ErrorCode where error == .systemInfoError {
  // handle system info error
}

FAQ

systemInfoError: questions people ask

What triggers systemInfoError?

In the current iOS and Android SDK source, nothing raises it. The code is reserved for system information problems, so treat any sighting as something to report.

How do I check for systemInfoError in React Native and Flutter?

In React Native, compare error.code with PURCHASES_ERROR_CODE.SYSTEM_INFO_ERROR. In Flutter, convert the PlatformException with PurchasesErrorHelper.getErrorCode(e) and compare the result with PurchasesErrorCode.systemInfoError.

Get started

Keep the RevenueCat SDK. Change the backend.

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