SKPaymentTransactionStatePurchased not getting called for successful purchases of recurring subscription

Number:rdar://29967331 Date Originated:01/11/17
Status:Open Resolved:
Product:iOS + SDK Product Version:
Classification:Serious Bug Reproducible:

An issue with in-app purchases not always updating with the SKPaymentTransactionStatePurchased state that cropped up in late 2015 seems to be back.

Starting around January 6th or so, our support team started receiving reports from customers who successfully purchased an auto-renewing subscription but did not receive the premium membership. While it is difficult to reproduce locally, it appears to be the same issue that occurred in late 2015. What seems to be happening is that in cases where the user is asked to update their credit card, etc, we initially get the SKPaymentTransactionStateFailed as expected, but never receive the SKPaymentTransactionStatePurchased update after the user completes the purchase. This forum thread discusses the issue:

Steps to Reproduce:
1. Set up app store payment information in such a way that the user is asked to update/verify payment information during the purchase process (expired cc, no available credit, etc)
2. Attempt to purchase a premium membership
3. Update payment information
4. Complete the purchase

Expected Results:
1. The app's SKPaymentTransactionObserver first receives a call to paymentQueue:updatedTransactions: with a SKPaymentTransactionStateFailed state and an error code of SKErrorPaymentCancelled

2. After payment information is updated and purchase is completed, another call is made to paymentQueue:updatedTransactions: with a SKPaymentTransactionStatePurchased state and we process the subscription

Actual Results:
We only get the first, SKPaymentTransactionStateFailed call, and never the SKPaymentTransactionStatePurchased call, even though the purchase actually succeeded


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!