---
id: "offerings/troubleshooting"
title: "Troubleshooting Empty Products/Offerings"
description: "A common issue after configuring your products in the RevenueCat dashboard is that the products aren't able to be retrieved from the SDK. Typically, this is due to a configuration issue."
permalink: "/docs/offerings/troubleshooting-offerings"
slug: "troubleshooting-offerings"
version: "current"
original_source: "docs/offerings/troubleshooting.mdx"
---

> **AI agents:** This is the Markdown version of a RevenueCat documentation page. For the complete documentation index, see [llms.txt](https://www.revenuecat.com/docs/llms.txt).

A common issue after configuring your products in the RevenueCat dashboard is that the products aren't able to be retrieved from the SDK. Typically, this is due to a configuration issue.

You may see the following message in your SDK debug logs:

```
There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from the [Play Store/App Store].
```

**Video:** [Troubleshooting Offerings](https://www.youtube.com/watch?v=HbF-5tpaBzc)

Here's how it works under the hood:

- Products are configured in the RevenueCat dashboard.
- The SDK retrieves the product identifiers from the RevenueCat API.
- The SDK uses that response to retrieve the products from the store on the device.

Since the actual products that your users purchase can only be retrieved from the stores directly on the device, any inconsistencies in the configuration between RevenueCat and the stores will prevent the products from being retrieved for purchase.

## Troubleshooting Guide

Follow these steps to verify your product configuration

### Select your platform

-  iOS / Apple Platforms
- 🤖 Android / Google Play
- 📦 Android / Amazon Appstore

## Troubleshooting steps

### Check App Store Connect Agreements

**Platforms:** iOS / Apple Platforms

Verify that all agreements (including the Paid Applications Agreement) in App Store Connect > Business have been signed and banking details have been completed in App Store Connect. This can take up to 24 hours to propagate after completing, including if your developer program expires and is then renewed.

> Note: The Paid Applications Agreement may have expired - please check its status.

### Ensure Apple Developer Membership Program is active

**Platforms:** iOS / Apple Platforms

Ensure that your [Apple Developer Membership](https://developer.apple.com/) program is active, has a valid payment method on file, and is set to auto-renew.

> Note: Please ensure the auto-renewal date is set to **before** the membership expiration date.

### Add App-Specific Shared Secret and In-App Purchase Key

**Platforms:** iOS / Apple Platforms

Make sure you have added both your [App Store Connect App-Specific Shared Secret](https://www.revenuecat.com/docs/service-credentials/itunesconnect-app-specific-shared-secret) and your [In-App Purchase Key](https://www.revenuecat.com/docs/service-credentials/itunesconnect-app-specific-shared-secret/in-app-purchase-key-configuration) in the RevenueCat dashboard. These are required for validating subscriptions and fetching offerings/products.

> Missing either of these credentials can prevent products and offerings from being fetched in your app.

### Check Google Play Console Agreements

**Platforms:** Android / Google Play

Verify that all agreements have been signed and banking details have been completed in Google Play Console.

### Published on a Closed Track

**Platforms:** Android / Google Play

Ensure your app is published on a [closed track](https://www.revenuecat.com/docs/test-and-launch/sandbox/google-play-store#create-a-closed-track-and-add-a-tester-to-it) in Google Play Console. Google Play requires all apps to be published on a closed track before products can be fetched, even when just testing.

### Licensed Testers

**Platforms:** Android / Google Play

Add a licensed tester in Google Play Console > Settings > License testing. Add here the account you are using in your real device (the account you are logged in with).

> Read our guide here: [Create a Test User and Configure Licensed Testing](https://www.revenuecat.com/docs/test-and-launch/sandbox/google-play-store#create-a-test-user-and-configure-licensing-testing)

### Verify Product Status

**Platforms:** iOS / Apple Platforms

Ensure the products are in the 'Ready to Submit' or 'Approved' state in App Store Connect. If you're submitting your first in-app purchase or adding a new in-app purchase type to your app, you'll need to submit it for review with a new version of your app. *Please ensure you **do not** separately submit your products for review without the app itself.*

### Product Identifier Match

**Platforms:** iOS / Apple Platforms, Android / Google Play, Android / Amazon Appstore

Confirm the product identifiers in the RevenueCat dashboard exactly match the product identifiers in your store.

### Physical Device Testing

**Platforms:** iOS / Apple Platforms

We strongly recommend testing on a physical device and not a simulator. Additionally, ensure you're logged into a [sandbox](https://www.revenuecat.com/docs/test-and-launch/sandbox/apple-app-store) Apple Account on the device (not a production Apple Account).

> Simulators do not have access to the live App Store API, and will only work with StoreKit Configuration files.

### Physical Device Testing

**Platforms:** Android / Google Play, Android / Amazon Appstore

We strongly recommend testing on a physical device and not a simulator.

> Simulators do not have access to the live store APIs.

### Bundle ID Validation

**Platforms:** iOS / Apple Platforms

Verify the Bundle ID in the RevenueCat dashboard matches the Bundle ID in App Store Connect and your Xcode project exactly.

> This is case-sensitive. If you're using [multiple environments](https://www.revenuecat.com/docs/guides/environment-strategies) with different Bundle IDs, be sure to check the Bundle ID in each environment.

### Package Name Validation

**Platforms:** Android / Google Play, Android / Amazon Appstore

Verify the package name in the RevenueCat dashboard matches the package name in Google Play Console/Amazon Appstore and your Android project exactly.

> This is case-sensitive. If you're using [multiple environments](https://www.revenuecat.com/docs/guides/environment-strategies) with different package names, be sure to check the package name in each environment.

### API Key Platform Check

**Platforms:** iOS / Apple Platforms, Android / Google Play, Android / Amazon Appstore

Configure the RevenueCat SDK with the correct app-specific [API key](https://www.revenuecat.com/docs/projects/authentication). The RevenueCat SDK uses different API keys for each platform.

> For example, if you use a Google key for iOS, the wrong product configuration will be retrieved, and products will not be able to be fetched.

### StoreKit Configuration

**Platforms:** iOS / Apple Platforms

Confirm your Xcode scheme does not have a StoreKit Configuration file configured if attempting to test with the live App Store API.

### Recent App Release

**Platforms:** iOS / Apple Platforms, Android / Google Play, Android / Amazon Appstore

If you've recently released your app with new in-app products, please note that these products may not be available for up to 24 hours after release.

### Testing Locally

**Platforms:** Android / Amazon Appstore

When testing locally, you need to set up the AppTester app from Amazon, and in AppTester you need to upload a JSON file with all of the products you offer. You can download a ready-to-use JSON file from the Amazon developer console.

> Follow this guide to learn how to upload the JSON file to AppTester: [Amazon AppTester Guide](https://developer.amazon.com/docs/in-app-purchasing/iap-install-and-configure-app-tester.html)

### Testing Locally

**Platforms:** Android / Amazon Appstore

When testing locally, you should be able to display the products (assuming AppTester is installed, sandbox mode is enabled and the products JSON is correctly uploaded), but purchases won't be validated by RevenueCat.
