VoidhashDocs
DevelopersHelp centerGuidesAPI reference
Dashboard
Guides
Launch
Go-live checklist
Make your first App Store purchase
Make your first Google Play purchase
Troubleshoot
Troubleshooting
Recover from incidents
SDK error codes
Purchase error codes
API error codes
FAQ
Recipes
Win back subscribers
Handle plan changes
Unlock the app after a web purchase
Link accounts across platforms
Handle refunds
Register devices for push
Migrate
Migrate to Voidhash
Migrate from RevenueCat
Migrate from Adapty
Migrate from Superwall
Run in observer mode
Privacy and hosting
Delete personal data
Self-hosting
Operate a self-hosted server

Purchase error codes

Find which Voidhash SDK a product, purchase, restore or transaction-report error code comes from.

These codes come from buying, restoring, syncing and reporting purchases in the client SDKs. Codes from other areas are in SDK error codes. The Web SDK doesn't sell products; Stripe reports checkout errors.

CodePlatformsMeaning
USER_CANCELLEDSwift, KotlinThe person closed the store sheet.
PURCHASE_PENDINGSwift, KotlinThe payment awaits approval, such as Ask to Buy.
FAILED_TO_GET_PRODUCTSSwift, Kotlin, React NativeThe store returned no product details, for example offline.
INVALID_PRODUCT_IDSwiftThe App Store didn't return the product, or no product has that slug.
SKU_NOT_FOUNDKotlinGoogle Play doesn't sell the product, or its details weren't loaded.
OFFER_UNAVAILABLESwift, Kotlin, React NativeThe store doesn't offer this offerId to the person, or no mapping lists it. Nothing was bought.
PURCHASE_FAILEDSwift, KotlinThe store failed the purchase, or a Google Play subscription has no base plan offer.
FAILED_TO_PURCHASEReact NativeThe purchase failed; nothing was bought. The native code is in the message.
PURCHASE_UNKNOWN_RESULTSwift, KotlinThe store returned a purchase result the SDK doesn't know.
PURCHASE_IN_PROGRESSKotlinAnother Google Play purchase sheet is already open.
PURCHASE_EMPTYKotlinGoogle Play reported success but returned no purchase.
TRANSACTION_VERIFICATION_FAILEDSwiftStoreKit couldn't verify the transaction, or Voidhash rejected it.
TRANSACTION_NOT_FOUNDSwiftVoidhash accepted the transaction, but the SDK no longer held it to finish with StoreKit.
WINDOW_SCENE_NOT_FOUNDSwiftNo active window scene to show the App Store sheet from.
PAYWALL_PRESENTER_NOT_AVAILABLESwiftA development-mode purchase ran without UIKit, such as on macOS.
BILLING_ERRORKotlinPlay Billing failed while buying, acknowledging or consuming.
GOOGLE_BILLING_NOT_INITIALIZEDKotlinGoogle Play services are missing, or Play Billing setup didn't finish.
CURRENT_ACTIVITY_NULLKotlinNo activity was available to launch the sheet from.
CONNECTION_ENDEDKotlinThe billing connection closed during the purchase.
FAILED_TO_RESTORE_PURCHASESSwift, React NativeThe store couldn't be reached, or a receipt isn't confirmed yet.
BILLING_CONNECTION_FAILEDKotlinPlay Billing didn't connect: Google Play services are missing or updating.
STORE_UNAVAILABLEKotlinGoogle Play couldn't list owned purchases.
FAILED_TO_SYNC_PURCHASESReact NativeThe store couldn't be read.
RECONCILE_TRANSACTIONS_FAILEDSwift, KotlinA restore or sync couldn't deliver a purchase to Voidhash. The SDK keeps it and retries.
INVALID_TRANSACTIONSwift, KotlinreportTransaction got an empty transaction ID or purchase token.
FAILED_TO_REPORT_TRANSACTIONReact NativereportTransaction got an invalid input.
TRANSACTION_NOT_DURABLEKotlinThe device couldn't store the report, for example with a full disk.
FAILED_TO_SHOW_MANAGE_SUBSCRIPTIONSSwift, React NativeThe App Store subscription sheet couldn't open.
FAILED_TO_PRESENT_CODE_REDEMPTION_SHEETReact NativeThe offer code sheet couldn't open (iOS only).

Details: Swift, Kotlin and React Native.

Next steps

  • SDK error codes for configuration, paywalls, identity and network.
  • Plan changes and refunds.
  • Troubleshooting: causes by symptom.

Something wrong or missing on this page? Tell us by email or on Discord.

PreviousSDK error codesNextAPI error codes

On this page

Next steps