I’m using “Cache Everything”, with what was until today a very long TTL. The idea was that a purge would automatically be issued for affected assets when modified (the purge always occurs after origin has been updated), and cloudflare can store them for however long they feel like outside of that. This has worked for years without issue.
Today, I was approached by a user who had for some reason been receiving a cached version from the 31st of May. 10 updates and subsequent purges has happened since the version he was seeing. All other users (as far as I can tell) were correctly and instantly seeing the new fresh version for each of these updates, showing that the purge commands did go through (my logs do not show any errors in the API calls either). He however saw every asset as it were on May 31st. The request headers provided by him corroborate that he was indeed getting a HIT straight from Cloudflare, serving him a very old version of all of my assets. It appeared as if that specific edge node had simply ignored all the asset-specific purge commands.
Manually purging everything immediately fixed this issue, and I’ve since lowered Edge TTL significantly, down to its minimum at 2 hours, to somewhat mitigate it should it happen again. But I still wonder: Why did this happen? How do I prevent it from happening again?