receipt validation problem

we are selling only auto-renewable products.

Recently, several users has reported that they successfully purchased but not able to access content we provide.
By validate their encoded receipt, using apple api "https://buy.itunes.apple.com/verifyReceipt"
I got this
```

{

"receipt": {

"receipt_type": "Production",

"adam_id": someValue,

"app_item_id": someValue,

"bundle_id": someValue,

"application_version": "someValue",

"download_id": 9999,

"version_external_identifier": someValue,

"receipt_creation_date": "2019-12-26 11:09:23 Etc/GMT",

"receipt_creation_date_ms": "1577358563000",

"receipt_creation_date_pst": "2019-12-26 03:09:23 America/Los_Angeles",

"request_date": "2019-12-27 10:54:59 Etc/GMT",

"request_date_ms": "1577444099382",

"request_date_pst": "2019-12-27 02:54:59 America/Los_Angeles",

"original_purchase_date": "2017-02-26 02:49:20 Etc/GMT",

"original_purchase_date_ms": "1488077360000",

"original_purchase_date_pst": "2017-02-25 18:49:20 America/Los_Angeles",

"original_application_version": "someValue",

"in_app": []

},

"status": 0,

"environment": "Production"

}

```
And according to apples documentation:


```

In-App Purchase Receipt


The receipt for an in-app purchase.ASN.1 Field Type 17ASN.1 Field Value SET of in-app purchase receipt attributesJSON Field Name in_appJSON Field Value array of in-app purchase receiptsIn the JSON file, the value of this key is an array containing all in-app purchase receipts based on the in-app purchase transactions present in the input base-64 receipt-data. For receipts containing auto-renewable subscriptions, check the value of the latest_receipt_info key to get the status of the most recent renewal.In the ASN.1 file, there are multiple fields that all have type 17, each of which contains a single in-app purchase receipt.Note: An empty array is a valid receipt.


The in-app purchase receipt for a consumable product is added to the receipt when the purchase is made. It is kept in the receipt until your app finishes that transaction. After that point, it is removed from the receipt the next time the receipt is updated - for example, when the user makes another purchase or if your app explicitly refreshes the receipt.The in-app purchase receipt for a non-consumable product, auto-renewable subscription, non-renewing subscription, or free subscription remains in the receipt indefinitely.

```
So the question is,
If user has successfully purchased, and got an email confirmation from Apple,
WHY is "in_app" filed still empty array??
our service has been online for over a year and this seems to work fine until this week.


thanks

The receipt may have been sent to your server from a device that had not yet purchased (or restored) the subscription or the user is scamming you.


You wrote: If user has successfully purchased, and got an email confirmation from Apple,

Please confirm that you saw that email confirmation.


Ask the user to restoreCompletedPurchases and see if that works.

Thanks for replying.
From my understanding, as long as user logged in a certain AppleID, I will get the same receipt inforamtion no matter what device they're using ?
Would be great if you can kindly help my clarify some of my assumptions:
1. If user got this receipt,

{

"receipt": {

"receipt_type": "Production",

"adam_id": someValue,

"app_item_id": someValue,

"bundle_id": someValue,

"application_version": "someValue",

"download_id": 9999,

"version_external_identifier": someValue,

"receipt_creation_date": "2019-12-26 11:09:23 Etc/GMT",

"receipt_creation_date_ms": "1577358563000",

"receipt_creation_date_pst": "2019-12-26 03:09:23 America/Los_Angeles",

"request_date": "2019-12-27 10:54:59 Etc/GMT",

"request_date_ms": "1577444099382",

"request_date_pst": "2019-12-27 02:54:59 America/Los_Angeles",

"original_purchase_date": "2017-02-26 02:49:20 Etc/GMT",

"original_purchase_date_ms": "1488077360000",

"original_purchase_date_pst": "2017-02-25 18:49:20 America/Los_Angeles",

"original_application_version": "someValue",

"in_app": []

},

"status": 0,

"environment": "Production"

}

then, This AppleID must have bought something from my service / app at date "2019-12-26 11:09:23" which is "receipt_creation_date"
2. If user haven't bought anything from my my service / app, I am not able to get a valid receipt (status won't be 0)
You state "The receipt may have been sent to your server from a device that had not yet purchased"
looks like my assumptions are wrong.

receipt validation problem
 
 
Q