Unable to purge a specific URL from the cache

By some reason I’m unable to purge a specific URLs.

For example I have files on my server like:

  • https://example.com/files/config.json
  • https://example.com/files/script.js

When I purge them from the dashboard (“Purge single URL”) or using API it works only sometimes (looks like the most often requested URLs cache is not purgable!).

I’ve checked downloading these files both with Chrome and with curl tool. I always get old version for a couple of files.

At the same time the notice in the dashboard says that there is 30 sec for cache to be cleared. Sometimes it takes about an hour to be revalidated.

I always get HIT status after purge.
Cache-control header is public, s-maxage=3600, max-age=100, stale-if-error=1000000, must-revalidate.
Cache reserve is On.
Tiered Cache Topology doesn’t matter, I’ve checked.

…This goes until I go into Developer mode or “Purge everything”.

Wonder if these HTTP cache values are actually generated by the Cloudflare Cache settings, or are added via the origin host/server or a plugin? :thinking:

Where from does this come? Who serves this?
Does Cloudflare respect the origin HTTP cache headers, or they’re set by the Cache Rules / Transform Rules at the CF dashboard? :thinking:

These values come from my origin server.

All my rules in CF are set to respect origin HTTP cache-control headers.

Everything works fine as designed and configured by this header, except I can not purge some specified URLs from CF cache manually (“purge everything” works fine).


Is there any solution for such undocumented behavior?

I’m in frustration because of unable to reach CF support team. It’s weird to not to have support IMO for paid users.