Hello, I'm using the App Store Connect API to check and modify subscription prices. I know there can be only 1 outstanding future price change for subscription pricing, so I check for any scheduled future price changes (after today's date) and then delete them before setting new ones.
This works 95% of the time -- except in the last little bit before the date changes. For example, if it is 1 hour before midnight and tomorrow's date is when the scheduled price change goes into effect, when I try to delete, I'll get something like this:
The request failed with response code 409 ENTITY_ERROR. There is a problem with the request entity. Cannot delete Subscription Price with id <redacted>. Only future price changes can be deleted.
If I look at the same subscription in App Store Connect, it will still show it as a future price change, and won't show the usual buttons to modify or delete it. However, in App Store Connect, I can still hit the "+" button to create a new price change and it will successfully delete and replace the pending price change, which will then appear with the usual Delete and Edit buttons.
My first thought was that maybe it was a timezone issue, but if I go to put the new pricing into effect, that request fails with an error like this:
"errors" : [ {
"id" : "5a51c570-1f38-4fa0-b490-9fa979f4aecf",
"status" : "409",
"code" : "STATE_ERROR",
"title" : "The request cannot be fulfilled because of the state of another resource.",
"detail" : "Must delete future price change before creating a new price change."
} ]
So... my questions are:
-
Is this expected behavior?
-
How can App Store Connect replace the pending price change in the final hours but I can't do it with the API?
-
As a workaround, is there a set amount of time before the price change goes into effect where the prices should no longer be editable?
Thanks!