Thanks everyone for reporting! We’ll re-open a radar to escalate this to Apple. Hopefully it gets addressed soon.
Hi!
Thanks for reporting!
Sadly the bug is a part of iOS 15.4 itself, so updating to 4.1.0 won’t fix it. We’ve reported it to Apple and we will just have to wait for it to get fixed 
Hello thank you we are facing same issue since yersterday on production. many users have reported the issue on our application… Thanks @Andy for helping us to report the issue. I have called them but it seems they don’t know anything about the issue...
We haven’t heard back from our radar yet.
Honestly folks, this API has proven to be pretty unreliable over time. I’d recommend doing promo offers by redirecting customers through the App Store with the code URL, instead of using `presentCodeRedemptionSheet`.
We updated our docs https://docs.revenuecat.com/docs/ios-subscription-offers#option-1-in-app-redemption-sheet to reflect that. The approach I mentioned is “Option 2”.
@Spot On Travel Nothing to report yet, sadly. I’ll update here when we hear back
Hello @Andy any news regarding your ticket ? Thanks
This is also happening for us on 15.5 in production. Getting the same “Can’t connect’ screen on submission. A few users have reported it as well.
We know that isn’t related to revenue cat, but right now this is the most active discussion about that bug.
So we are also experiencing the same bug while trying to redeem a subscription code in production.
Affected versions: 15.5
Where it works: 14.2, 14.4, 15.3.1
Someone reported that 15.5 works again, but we can not confirm this.
This has been happening to me for about a week in production (app store) too. I doubt that it’s something cached on the app because I have deleted and reinstalled multiple times. I just get a “Cannot Connect” message. It’s particularly painful to work on since none of this is testable in dev environments.
After more testing, it seems like it’s now not working in Sandbox but working correctly in Production.
There’s nothing to do on your side, we’re in touch with Apple to help them reproduce but ultimately the fix will have to come from them
Thank you,
Does look like it is a Sandbox issue. Just downloaded the app and it works on production.
Thank you
After more testing, it seems like it’s now not working in Sandbox but working correctly in Production.
There’s nothing to do on your side, we’re in touch with Apple through the radar but ultimately the fix will have to come from them
Update here: the iOS bug has been fixed, so `presentCodeRedemptionSheet()` now works as expected on all OS versions.
@balsalobre I’m sorry I missed your reply! The answer is that you don’t need to do anything - this will automatically work on all SDK versions, no action needed 
Let me know if you run into anything else!
Thanks @Andy. We have a listener set up, but it’s still not registering for some reason…I also looked up the customer on RevenueCat and confirmed the code was successfully applied there.
Is there anything else we need to do? (The old redemption code sheet worked fine for us pre-iOS 15.) Thanks!
In order for that to work, you need to make sure you set up a listener for updates: https://docs.revenuecat.com/docs/customer-info#listening-for-customerinfo-updates
Hi! It’s been working perfectly since this issue was marked as SOLVED, but I’ve started receiving complains from users of my app getting this exact same message. I’ve the latest RevenueCat update from CocoaPods in my app, and the users that are complaining about this are on iOS 16.3. Is anyone facing the same issues? Thanks
@balsalobre the promo code redemption sheet has proven to be unreliable over the years, unfortunately, so I’m not surprised.
We’ve stopped recommending its use and instead we recommend having the users redeem codes by opening a link with the code filled in.
Instructions for how to do that are available here:
https://www.revenuecat.com/docs/ios-subscription-offers#option-1-in-app-redemption-sheet
Hi @Andy thanks for the tip re: Option 2. We tried it and the redemption flow works smoothly, but when we open the app afterwards, the entitlement doesn’t appear in the RevenueCat API so the app appears as if the user is not upgraded.
Is there something else we need to do to make this work? Thanks!
`presentCodeRedemptionSheet` works, but in our experience, it’s not particularly reliable. To be clear, this is an API that we bridge over from Apple directly, and the unreliable bits are coming from iOS itself.
Our customers have reported issues with presentCodeRedemptionSheet like:
- the sheet may not connect
- the sheet may not dismiss after a successful redemption
- the sheet may not accept valid codes
- sandbox and TestFlight behavior has been seen to be inconsistent.
@balsalobre the promo code redemption sheet has proven to be unreliable over the years, unfortunately, so I’m not surprised.
We’ve stopped recommending its use and instead we recommend having the users redeem codes by opening a link with the code filled in.
Instructions for how to do that are available here:
https://www.revenuecat.com/docs/ios-subscription-offers#option-1-in-app-redemption-sheet
Awesome, thanks Andy. Funny thing is that I did that in a previous release but changed to the “integrated” option because I liked the UX better. Will go back to AppStore links.
Cheers!
@Andy , I have the same problem , option 2 it is not easy for the users because they have to subscribe before then apply the code
why presentCodeRedemptionSheet not work ?
Hey folks,
Just an update on this – I followed the advice in the documentation to make my own code redemption sheet, but unfortunately App Review rejected my app due to it.
I built a sheet for people to enter a code, with a ‘redeem on the App Store’ button which would open the App Store app with the code prefilled, and they rejected it for saying I was circumventing the normal redemption flow. I went back and forth with them over a few days, trying to explain that I wasn’t circumventing the App Store, but they refused to budge and I ended up removing it to unblock my release.
Of course, none of this is RevenueCat’s fault or responsibility, I’m just mentioning it for the record if anybody else comes across the same issue.
Thanks @Andy for the tips. It works fine
We have been also facing this issue for over a week in Production. Any update from anyone getting a response from Apple would be appreciated.
Thanks @Andy! Really appreciate the help
hopefully Apple fixes this soon