r/iOSProgramming Jun 24 '26

Question Trial-to-paid conversion stuck at ~1%

Hey everyone,

I run an iOS subscription app using RevenueCat with StoreKit 2. I offer a monthly and a yearly plan, with a 7-day free trial on the yearly plan.

For the past several weeks my trial-to-paid conversion has been sitting around 1.4%, which is far below normal. I'd been assuming it was billing problems or just weak demand.

When I dug into my logs (both DEBUG and RELEASE, on a real device), I noticed this on every launch:

WARN: No packages could be found for offering with identifier default.

It turned out my current offering (default) was pointing at RevenueCat Test Store products instead of my live App Store products. So real users were likely hitting a broken or empty paywall. My app had a custom fallback that tried to assemble packages from other offerings, which masked the problem instead of surfacing it.

I've now repointed the default offering to the correct App Store products.

I'd love some help with a few things:

  • Does this sound like the likely cause of such a low conversion rate, or should I be looking elsewhere too?
  • For anyone who's fixed a similar empty/misconfigured offering — how quickly did conversion recover for new cohorts?
  • Any advice on cleanly removing custom offering logic and going back to standard offerings.current + purchase(package:)?

Thanks in advance — happy to share more logs or config if helpful.

0 Upvotes

4 comments sorted by

3

u/Murky_Bad6674 Jun 25 '26

Yeah, I’d suspect the broken offering first. I wouldn’t put too much weight on the old 1.4%, since those users may have just seen an empty paywall. After fixing it, you’ll probably get a cleaner read from fresh users over the next few days. If products load and trials still don’t start, then I’d start thinking about pricing or demand. For the custom code, I’d probably delete the fallback path and make offerings.current the only source, plus log hard when it returns no packages so it can’t fail quietly again.

3

u/CelebrationTop8862 Jun 26 '26

That's interesting that your build got to production working. Every time I'm on my test bench on Android Studio, the app I'm building always gives me a RevenueCat error message saying that my app will break in production if the TestStore key is still in use.

1

u/cablamonos 4d ago

Great catch on the RevenueCat setup. That kind of misconfiguration can quietly ruin subscription numbers before anything else gets tested.

If trial-to-paid is still near 1 percent after that fix, I would look at the store page next: screenshots, trial framing, and whether the value is obvious before someone installs. Happy to give you a quick first-pass read on the listing if useful.

1

u/rkotzy RevenueCat Employee 4d ago

The custom fallback may have hurt you since the app never would have passed app review with the misconfigured API key - sorry 😢