IAP odd behaviour. Status purchased but error field is not empty

Hi guys. We have IAP implemented. It works most of the time. Today very odd thing happened. One of our users did a purchase, money were taken from his account but he didn't receive premium content.
He saw this native popup: imgur.com/vefTzyW

From the logs we were able to see to error message:
Code Block language
Purchases error: Instance of 'IAPError' PurchaseStatus.purchased GAGTBUN006 470000648416965 {transactionState: 1, payment: {productIdentifier: OUR_BUNDLE_ID, applicationUsername: null, requestData: null, quantity: 1, simulatesAskToBuyInSandbox: false, originalTransaction: null, transactionTimeStamp: 1593164094.0, transactionIdentifier: HIDDEN_IDENTIFIER, error: Instance of 'SKError'} SKErrorDomain 0 {NSLocalizedDescription: An unknown error occurred, NSUnderlyingError: {domain: ASDServerErrorDomain, userInfo: {NSLocalizedDescription: Verification Required}, code: 2024}} 1593164094000 Instance of 'PurchaseVerificationData' (null)}

which corresponds to our error log:
Code Block language
Purchases error: ${d.error} ${d.status} ${d.productID} ${d.purchaseID} ${d.skPaymentTransaction} ${d.skPaymentTransaction.error.domain} ${d.skPaymentTransaction.error.code} ${d.skPaymentTransaction.error.userInfo} ${d.transactionDate} ${d.verificationData}



Documentation says that error is set only when transaction fails: https://developer.apple.com/documentation/storekit/skpaymenttransaction/1411269-error
but status of transaction is purchased.
Is there anyone that can help me with it? We already give the premium content for the user since he's very active and it's not his first purchase.
Also, I heard that there were problems with IAP last days, long loading, or other failures.

App installed from AppStore.

Hello,

Any solution for this?

Based on documentation:
https://developer.apple.com/documentation/storekit/skerror/code/unknown

When this error occurs in production, it may indicate a problem with the user’s iTunes account.

If this error is because of the user's Apple account, should this take the user's money?

We also experiencing this error.

Error Domain = SKErrorDomain Code = 0 "An unknown error has occurred"
UserInfo = {NSLocalizedDescription = An unknown error has occurred,
{Error Domain = "ASDServerErrorDomain Code = 2024" Confirmation required
"UserInfo = {NSLocalizedDescription = Confirmation required}}}) code: 0
Hey there,

We also see this error on some of our purchases - but only in failed transactions.

What is the reason for this error and how can it be prevented?

An interrupted purchase is a transaction that requires the user to perform some action outside of your app before completing their transaction. For example, the user may need to update a payment method or accept new terms and conditions before continuing with their transaction.

You can test interrupted purchases in sandbox:
https://developer.apple.com/documentation/storekit/in-app_purchase/testing_in-app_purchases_with_sandbox

Basically, there is a failed transaction with a problem that the user has to fix. If the user fixes the problem, there will be a new success transaction that you have the handle.


To prevent it in code you have to listen all the time to the updatedTransactions method from SKPaymentTransactionObserver and handle all transactions that you receive.



IAP odd behaviour. Status purchased but error field is not empty
 
 
Q