My App Store auto-renewable subscriptions are fully configured in App Store Connect (a monthly and a yearly), and RevenueCat *sandbox environment* clearly has them. The dashboard shows the correct products and "Billing Plan: Upfront" on the yearly. But calling GET /v2/projects/{project_id}/products returns both products with a null subscription block:
"store_identifier": "com.myapp.yearly",
"state": "active",
"type": "subscription",
"subscription": { "duration": null, "grace_period_duration": null, "trial_duration": null }
Everything else is correct, only subscription fields are null.
What I've already confirmed (so this isn't a setup mistake):
- App Store Connect API key and In-App Purchase key are connected and show Valid Credentials.
- Both subscriptions are Ready to Submit in App Store Connect with their durations set (1 month / 1 year).
- I've re-imported the products in RevenueCat.
- No purchase has ever been made against these product IDs.
I found an older thread suggesting duration only populates after the first purchase/receipt. If that's accurate:
1. Why is duration null pre-purchase when it's already defined in App Store Connect and RevenueCat can clearly read the product?
2. How do I get subscription.duration populated before any purchase?
3. If a purchase really is required first, what's the point of importing products, if RevenueCat won't expose the details of those products that are fully set in App Store Connect?
Happy to share my real project/product IDs privately if it helps you look up the specific products.
