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 ?