Bug Description
1. Summary
VegaOS and FireOS builds distributed through Live App Testing cannot initiate an in-app subscription purchase. The Amazon purchase screen does not open, and the Amazon IAP SDK returns PurchaseResponse.RequestStatus.INVALID_SKU.
This prevents testing purchases of Surfshark subscription on Live App Testing builds.
App Name: Surfshark
App Link on Amazon Appstore (found through Developer Console → Actions column in App List → View on Amazon.com): Surfshark VPN - Fast, Secure & Private. Best VPN for FireOS & Fire TV. - App on Amazon Appstore
Bug Severity
Select one that applies
- Impacts operation of app
- Blocks current development
- Improvement suggestion
- Issue with documentation (If selected, please share the doc link and describe the issue)
- Other
2. Steps to Reproduce
-
Configure the Surfshark subscription SKU in the Amazon Developer Console.
-
Upload a VegaOS or FireOS build to Live App Testing.
-
Install the build through Live App Testing.
-
Launch Surfshark.
-
Create or sign in to an account without an active subscription.
-
Open the subscription plan-selection screen.
-
Select a plan and initiate the purchase.
-
The app uses Amazon IAP SDK methods equivalent to:
PurchasingService.getProductData(setOf(configuredSku)) PurchasingService.purchase(configuredSku)
3. Observed Behavior
The Amazon purchase screen does not open. After several seconds, the SDK invokes onPurchaseResponse with:
PurchaseResponse.RequestStatus.INVALID_SKU
The app then displays “Payment couldn’t be completed.”
The attached FireOS diagnostics show that this is consistently reproducible:
AmazonPayTv: onProductDataResponse, status=SUCCESSFUL, priceCount=0
AmazonPayTv: launching Amazon native purchase UI
AmazonPayTv: onPurchaseResponse, status=INVALID_SKU
Amazon payment flow failed - INVALID_SKU
The same behavior occurs in VegaOS Live App Testing builds.
4. Expected Behavior
The configured subscription SKU should resolve in Live App Testing, and calling PurchasingService.purchase() should open the Amazon purchase screen so the tester can complete the test transaction.
4.a Possible Root Cause & Temporary Workaround
The product-data request reports SUCCESSFUL but returns no product prices (priceCount=0). A subsequent purchase request then returns INVALID_SKU.
This suggests that the SKU is not being resolved or associated with the Live App Testing build, despite being configured in the Developer Console. Possible areas include SKU availability, app/SKU association, marketplace configuration, or Live App Testing catalog propagation.
No temporary workaround has been found. Retrying the purchase and reinstalling/relaunching the build produce the same result.
4.a Possible Root Cause & Temporary Workaround
The product-data request reports SUCCESSFUL but returns no product prices (priceCount=0). A subsequent purchase request then returns INVALID_SKU.
This suggests that the SKU is not being resolved or associated with the Live App Testing build, despite being configured in the Developer Console. Possible areas include SKU availability, app/SKU association, marketplace configuration, or Live App Testing catalog propagation.
No temporary workaround has been found. Retrying the purchase and reinstalling/relaunching the build produce the same result.
5. Logs or crash report
VegaOS logs — sanitized relevant excerpt
Device hostname, UUIDs, process IDs and unrelated events removed.
-– Purchase attempt 1 —
Jul 30 11:09:54.071 DataStoreDaemon: SecurityManager ERROR: Privilege ‘com.amazon.venezia.datastore.privilege.AppCatalogDB.write’ not granted
Jul 30 11:09:54.100 DataStoreDaemon: SecurityManager ERROR: Privilege ‘com.amazon.venezia.datastore.privilege.AppCatalogDB.write’ not granted
Jul 30 11:09:54.585 PackageManager: Found default component ‘com.amazon.iap.core.ui’
Jul 30 11:09:54.630 MessageRouter: Launch requested for orpheus://com.amazon.iap.core.ui
Jul 30 11:09:54.631 LifecycleManager: Processing launch request for com.amazon.iap.core.ui
Jul 30 11:09:54.773 LifecycleManager: Bound com.amazon.iap.core.ui to parent com.surfshark.vpnclient.android.main
Jul 30 11:09:57.084 LifecycleManager: com.amazon.iap.core.ui execution completed
Jul 30 11:09:57.084 LifecycleManager: Dismissing bound component com.amazon.iap.core.ui
Jul 30 11:09:57.084 LifecycleManager: Unbound com.amazon.iap.core.ui from parent application
Jul 30 11:09:57.187 LifecycleManager: com.amazon.iap.core.ui stopped
Jul 30 11:09:57.239 DataStoreDaemon: SecurityManager ERROR: Privilege ‘com.amazon.venezia.datastore.privilege.AppCatalogDB.write’ not granted
-– Purchase attempt 2 —
Jul 30 11:10:01.152 DataStoreDaemon: SecurityManager ERROR: Privilege ‘com.amazon.venezia.datastore.privilege.AppCatalogDB.write’ not granted
Jul 30 11:10:01.596 PackageManager: Found default component ‘com.amazon.iap.core.ui’
Jul 30 11:10:01.621 DataStoreDaemon: SecurityManager ERROR: Privilege ‘com.amazon.venezia.datastore.privilege.AppCatalogDB.write’ not granted
Jul 30 11:10:01.624 MessageRouter: Launch requested for orpheus://com.amazon.iap.core.ui
Jul 30 11:10:01.625 LifecycleManager: Processing launch request for com.amazon.iap.core.ui
Jul 30 11:10:01.760 LifecycleManager: Bound com.amazon.iap.core.ui to parent com.surfshark.vpnclient.android.main
Jul 30 11:10:03.194 DataStoreDaemon: SecurityManager ERROR: Privilege ‘com.amazon.venezia.datastore.privilege.AppCatalogDB.write’ not granted
Jul 30 11:10:03.196 LifecycleManager: com.amazon.iap.core.ui moved to background and was removed
FireOS logs
Issue: Amazon IAP purchase returns INVALID_SKU in Live App Testing
Source environment:
- App version: 3.31.0 (310045656)
- Distribution: Amazon release / Live App Testing
- Device type: Fire TV
- Device model: Amazon AFTMM
- OS version: 7.1.2
- ABI: armeabi-v7a
- Amazon IAP SDK: 2.0.76
- App state: Foreground
The following excerpt contains only events relevant to the purchase flow.
User identifiers, network information, account data, experiment assignments,
and unrelated diagnostics have been removed.
[2026-07-29 12:23:01.401] [INFO] AmazonPayTv: getPurchaseUpdates, mode=PAYWALL_SYNC, active update mode=null
[2026-07-29 12:23:03.146] [INFO] AmazonPayTv: onProductDataResponse, status=SUCCESSFUL, priceCount=0
[2026-07-29 12:23:03.873] [INFO] AmazonPayTv: onPurchaseUpdatesResponse, mode=PAYWALL_SYNC
[2026-07-29 12:23:03.876] [INFO] AmazonPayTv: onPurchaseUpdatesResponse success, mode=PAYWALL_SYNC, receiptCount=0
[2026-07-29 12:23:03.877] [INFO] AmazonPayTv: no pending receipts, proceeding with purchase
[2026-07-29 12:23:03.886] [INFO] AmazonPayTv: launching Amazon native purchase UI
[2026-07-29 12:23:08.568] [INFO] AmazonPayTv: onPurchaseResponse, status=INVALID_SKU
[2026-07-29 12:23:08.570] [WARN] Amazon payment flow failed - INVALID_SKU
java.lang.Exception: Amazon payment flow failed - INVALID_SKU
at com.amazon.device.iap.internal.b.e$1.run(SourceFile:96)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6202)
Repeated attempt:
[2026-07-29 13:12:32.534] [INFO] AmazonPayTv: getPurchaseUpdates, mode=PAYWALL_SYNC, active update mode=null
[2026-07-29 13:12:33.668] [INFO] AmazonPayTv: onProductDataResponse, status=SUCCESSFUL, priceCount=0
[2026-07-29 13:12:34.688] [INFO] AmazonPayTv: onPurchaseUpdatesResponse, mode=PAYWALL_SYNC
[2026-07-29 13:12:34.691] [INFO] AmazonPayTv: onPurchaseUpdatesResponse success, mode=PAYWALL_SYNC, receiptCount=0
[2026-07-29 13:12:34.691] [INFO] AmazonPayTv: no pending receipts, proceeding with purchase
[2026-07-29 13:12:34.701] [INFO] AmazonPayTv: launching Amazon native purchase UI
[2026-07-29 13:12:38.500] [INFO] AmazonPayTv: onPurchaseResponse, status=INVALID_SKU
[2026-07-29 13:12:38.502] [WARN] Amazon payment flow failed - INVALID_SKU
End of sanitized excerpt.
6. Environment
Vega
-
SDK Version: Active SDK Version: 0.23.8358
Vega CLI Version: 1.2.22 -
App State:
Foreground -
OS Information: NAME=“OS”
OE_VERSION=“4.0.0”
OS_MAJOR_VERSION=“1”
OS_MINOR_VERSION=“2”
RELEASE_ID=“21”
OS_VERSION=“1.2”
BRANCH_CODE=“TV Ship”
BUILD_DESC=“OS 1.2 (TV Ship/547)”
BUILD_FINGERPRINT=“4.0.378951.0(3072cab629675a74)/547N:user/release-keys”
BUILD_VARIANT=“user”
BUILD_TAGS=“release-keys”
BUILD_DATE=“Tue Jul 14 08:13:13 UTC 2026”
BUILD_TIMESTAMP=“1784016793”
VERSION_NUMBER=“2101020054720”
FireOS
-
SDK Version: Amazon IAP SDK Version: 2.0.76
App Version: Surfshark 3.31.0 (310045656)
Build Type: Release, Amazon distribution
App State: Foreground -
App State:
Foreground -
OS Information: Manufacturer: Amazon
Model: AFTMM
Android base OS version: 7.1.2
ABI: armeabi-v7a
7. Example Code Snippet / Screenshots / Screengrabs
Relevant native Android integration:
PurchasingService.registerListener(context, purchasingListener)
PurchasingService.getProductData(productSkus)
PurchasingService.purchase(purchaseSku)
Playback Issues
N/A — this issue is unrelated to media playback.
Additional Context
Any Additional Context you would like to provide?
Product-data callbacks return SUCCESSFUL, but with an empty product result.
Purchase-update synchronization succeeds and reports zero pending receipts.
Multiple purchase attempts consistently return INVALID_SKU.
No application crash occurs.