Manually purge a URL from all edge nodes please

Hi,

I’m seeing some inconsistent behaviour, presumably depending on which edge node my requests hit.

I’m proxying a URL via Netlify, and have been playing around with the cache-control headers. I accidentally set my max-age too high for a while (cache-control: max-age=30099999), and now that response seems to be stuck in one of Netlify’s edge nodes.

Please could you manually purge https://wolstenhol.me/api/recently-played (and, if query strings are part of the cache key, https://wolstenhol.me/api/recently-played?1) from all the edge node caches?

My Netlify site name is cranky-mcnulty-01683e and the site ID is bbd30066-8ac0-4629-884e-2a843deb68d1, I think.

Here are some CURL responses taken seconds apart, showing how sometimes the cache-control value is max-age=30099999 (:-1: ) but sometimes it is public,max-age=0,s-maxage=300,must-revalidate (:+1: )

Someone has explained to me on the Clouflare forum that this is likely to be due to an issue caused by the origin (Netlify or my proxied source) rather than Cloudflare.

❯ curl -I https://wolstenhol.me/api/recently-played
HTTP/2 200
date: Sun, 27 Feb 2022 19:07:59 GMT
content-type: application/json; charset=utf-8
content-length: 149
access-control-allow-origin: *
age: 8
cache-control: max-age=30099999
x-nf-request-id: 01FWY99Z7QD7YFE072DQWH1MM5
x-powered-by: Express
cf-cache-status: HIT
last-modified: Sun, 27 Feb 2022 19:07:51 GMT
accept-ranges: bytes
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Qm11%2BwDDMJJ%2FjXciVRJrZeQ%2BHTKhY3yKd0dArhLmRkViQM%2B9kJTLm%2BqbgK%2FQzQdCcpwj04XG8Sv4YK2xHASavMu1%2FdyzVVkZUjwvgDNMnQCOv8h3xCOOFnY1BW29MLrT"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=2592000
x-content-type-options: nosniff
server: cloudflare
cf-ray: 6e43b2ff18987789-LHR
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400

❯ curl -I https://wolstenhol.me/api/recently-played
HTTP/2 200
date: Sun, 27 Feb 2022 19:08:02 GMT
content-type: application/json; charset=utf-8
content-length: 2
access-control-allow-origin: *
cache-control: public,max-age=0,s-maxage=300,must-revalidate
etag: "2-vyGp6PvFo4RvsFtPoIWeCReyIC8"
x-nf-request-id: 01FWY9A8MDTJJE9D32EVR284J6
x-powered-by: Express
cf-cache-status: MISS
accept-ranges: bytes
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=r5rNc5iAjYmFZHEuheZcGPsSgXik7VVqDGTehV1kAheVvsYFtExKUxL%2Fq59bgYDTmt4JsIK%2FEMPXMZGwGX7BlGEol6vPG%2FbwBBhD7qEgyYEp3AeJBpmfAlwPD0Yz0P49"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security: max-age=2592000
x-content-type-options: nosniff
server: cloudflare
cf-ray: 6e43b3097cd7886e-LHR
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400

I think you’re right - that it is stuck in our internal caches. However, it’s super hard for me to tell since you don’t have a valid SSL certificate for browsers to connect to (you instead use the cloudflare origin certificate, which is totally not required but causes problems like this for our debugging), for your custom hostname.

Could you change Cloudflare to connect to cranky-mcnulty-01683e.netlify.app instead of wolstenhol.me/www, please? Then you’ll route around this cache AND our staff will be better able to help you debug going forward.

This kind of situation is why we in general do not provide tech support for people proxying to us from Cloudflare: [Support Guide] What problems could occur when using Cloudflare in front of Netlify?

Thanks @fool - I’d forgotten about the disadvantages of combining Netlify and Cloudinary. I’ll have a look at what I get out of Cloudflare and see if I could do it all via Netlify instead.

For now I’ve turned off the ‘orange cloud’ and now my headers just seem like Netlify ones:

❯ curl -I https://wolstenhol.me
HTTP/2 200
age: 0
cache-control: public, max-age=0, must-revalidate
content-type: text/html; charset=UTF-8
date: Mon, 28 Feb 2022 20:17:58 GMT
etag: "e51dad60c8acbc82abfc3e423a667f95-ssl"
server: Netlify
strict-transport-security: max-age=31536000
x-frame-options: DENY
x-nf-request-id: 01FX0ZQ2E33C38H4773NZA1GS1
x-xss-protection: 1; mode=block

Hey @philw,

We’ve purged the CDN cache from our end, let us know if it’s still not working.