Skip to main content

Amazon Appstore SDK initialization delays on Fire TV/Firestick and low-spec devices (e.g. Kindle Fire 7)

  • September 3, 2025
  • 3 replies
  • 107 views

Forum|alt.badge.img+5

Hello RevenueCat community,

We would like to open a discussion around the initialization behavior of the Amazon Appstore SDK when used with RevenueCat, particularly on Fire TV devices and low-spec kindle tablets.
 

Environment

  • React Native Purchases: react-native-purchases: 8.11.10
  • RevenueCat Amazon Store: purchases-store-amazon:8.22.0
  • Amazon Appstore SDK: com.amazon.device:amazon-appstore-sdk:3.0.5

Devices tested:

  • Fire TV Stick (Fire OS 5.2.9.5)
  • Kindle Fire 7, 7th generation (Fire OS 5.7.1.0)

 

Issue observed

 

When configuring RevenueCat with

Purchases.configure({ apiKey: REVENUE_CAT_API_KEY_AMAZON, useAmazon: true })

we sometimes experience very long initialization times (up to 30–60 seconds). This affects the ability to fetch offerings at app startup.

Errors observed in React Native:

[RevenueCat] Error obtaining storefront in Amazon: PurchasesError(
code=UnknownError,
underlyingErrorMessage=Timeout error trying to get Amazon user data.,
message='Unknown error.'
)

[RevenueCat] 😿‼️ PurchasesError(
code=UnknownError,
underlyingErrorMessage=Timeout error trying to get Amazon user data.,
message='Unknown error.'
)

[RevenueCat] 🤖‼️ Error fetching offerings - PurchasesError(
code=UnknownError,
underlyingErrorMessage=Timeout error trying to get Amazon user data.,
message='Unknown error.'
)

After checking the native logs via ADB, we found multiple errors and warnings coming directly from the Amazon Appstore SDK, which appear to delay or prevent RevenueCat from presenting offerings. Key log entries include:

E/AmazonAppstore.AccountSummaryProviderImpl: accountManager is null, didnt we call init?
I/AmazonAppstore.DeviceServiceSSOAuthenticator: still fetching tokens for ready account, forceDS = false
I/AmazonAppstore.TokenFetcher: appstore registered, only reading shared prefs
I/AmazonAppstore.AuthUtils: Found value to be blank when fetching from shared pref for: .deviceKey
I/AmazonAppstore.AuthUtils: Found value to be blank when fetching from shared pref for: .deviceToken
I/AmazonAppstore.AuthUtils: Found value to be blank when fetching from shared pref for: .lastName
W/AmazonAppstore.DummyAndroidAccountAccessor: Could not retrieve any account from the Account Cache, regardless of index
W/AmazonAppstore.DfatEventsTable: DFAT events table has reached maximum capacity


​​​​

Key point
 

From our investigation, this appears to be agnostic of RevenueCat and React Native. The root cause seems to be something with Amazon Appstore SDK fails to initialize user/storefront data reliably in certain environments (Fire TV Stick, low-memory Kindle devices). However, in the same session, when applying a retry mechanism (e.g. calling .getOfferings() again after a delay), the offerings can sometimes be retrieved successfully.

​​​​​​

Discussion points

  • Have others in the community observed similar delays (30–60s) when initializing the Amazon Appstore SDK on Fire TV / Firestick or older Kindle devices?
  • Are there any recommended strategies for handling these cases (e.g. retries, lazy initialization, deferring storefront calls)?
  • Could different Amazon SDK versions reduce this latency?

We’d like to hear if this is a known characteristic of the SDK on these platforms/devices, or if there are best practices we can apply to mitigate the impact on purchase flows.

Thanks in advance for any insights.

 

This post has been closed for comments

3 replies

guilherme
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • September 5, 2025

Hey ​@Hugo ,

Thanks for reaching out!

Amazon has three different testing environments, and while offerings will load in the App Tester environment, to validate purchases you will have to be using the Live App Testing one. As you mention that offerings do come through some times, this might not be the exact case, but just to give more context on further testing too - we cover that and other bits of context in our guide here: https://www.revenuecat.com/docs/test-and-launch/sandbox/amazon-store-sandbox-testing 

Looking to understand how the initialisation is being done, I stumbled this SoF thread that mentions to double check if calling AccountManager.getUserData() doesn’t happen in a background thread? If that could be something that causes this issue?


Forum|alt.badge.img+5
  • Author
  • New Member
  • September 5, 2025

Hi ​@guilherme

All of our tests are being performed in the Live App Testing environment.

On the React Native side, we do not call AccountManager.getUserData() explicitly, and we are not certain whether this is the root cause of the long delays observed when fetching offerings on Fire TV Stick and older Kindle devices.

In our implementation, we only perform two calls:

  1. Purchases.configure({ apiKey: REVENUE_CAT_API_KEY_AMAZON, useAmazon: true })

  2. await Purchases.getOfferings()

This leads to the question: does RevenueCat internally call AccountManager.getUserData() during configuration or even Purchases.getOfferings()? If so, this could explain why the SDK initialization appears to stall for a long time on some devices.

It’s important to note that we have limited visibility into the layers under React Native, including the RevenueCat SDK, the Amazon Appstore SDK, and other system-level services. As a result, any behavior occurring deeper in the stack is largely opaque, making it difficult to pinpoint the exact cause of delays when fetching offerings.

We are raising this point for discussion to better understand the initialization flow and potential optimizations for low-spec Fire OS devices.


guilherme
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • September 11, 2025

Hey ​@Hugo ,

Thanks for that added detail! 

Looking into the codebase further, this snippet on the native Android SDK, it does look like we are internally calling getUserData() when querying product details.

We are looking into this a bit more, on what could be happening here that could cause these misbehaviours - so I will make sure to update you once I know more too!

Thanks,