iOS 9: Unfinished transaction disappears from payment queue

When I bought a consumable product using StoreKit, the process went through, I had a transaction in state SKPaymentTransactionStatePurchased. However, I didn't finish this transaction immediately. Let's call this transaction T.


I killed the app and launched the app again. This time I received a call to delegate method -paymentQueue:queue updatedTransactions: with T in the transaction list. After that, I received a call to delete method -paymentQueue:removedTransactions: with T in the transaction list. This happened without me calling finishTransaction for T.


Afterwards, I was not be able to retrieve T in the paymentQueue and [[SKPaymentQueue defaultQueue] transactions] did not contain T.


Is it the expected behavior in iOS 9 ?

Definitely seems to be a bug, and you're definitely not the only one. I'm experiencing it, and have seen mention of it by several other developers. I know there are multiple radars out there for it, but here is one: 22912989


Really hoping for a quick resolution or workaround for this - it's a pretty brutal one.

Thanks for your input. I submitted a bug report to Apple. Hope that they'll fix it soon.

I've seen the same behavior too. It's particularly bad because it isn't just when the app is killed for me. It also occurs if the user backgrounds the app and when the device falls asleep. Also, I'm using Apple hosted content, so not consumable, but same flow you're describing. It happens 100% of the time that the user leaves the app for any reason, so it's a bit of a showstopper for big downloads.

Magically started working for me on Oct 9. Seems like Apple might have made a backend fix. Anyone else notice this?

Yah, it's working for me now as well.

iOS 9: Unfinished transaction disappears from payment queue
 
 
Q