I'm running into issues with iOS respecting the HTTP 410 "Gone" response type.
Setup:
- Using the native iOS Calendar app, add a new subscription calendar. "Add Subscription Calendar"
- Add the URL of a ICS calendar subscription that you control, e.g. https://mywebsite.com/userfeeds/23/cal.ics
- Make sure to select the "Account" option and choose "On My iPhone/iPad". Set the query amount to 15 mins.
- Calendar events show as expected, device queries the latest updates from the server every 15 minutes. Server returns HTTP 200 with the .ics contents.
Now, assume there is a need for the feed to end - maybe the user unsubscribed to mywebsite.com. There is currently no way for the mywebsite.com server / response to tell the device the feed has ended and it should stop requesting. If the user forgets to go to calendar and manually unsubscribe the device will continually ping the server every 15 minutes indefinitely. It's turning into a virtual DoS for my platform.
iOS should respect the HTTP 410 "Gone" header or something similar. If the server returns a HTTP 410 response code for https://mywebsite.com/userfeeds/23/cal.ics X amount of times, the feed should be automatically removed.
I've opened several tickets over the last 3 years and have not even had a status change on the tickets.
Does anyone know how to resolve this or a work around?