Changes to cache default behavior around a month ago?

This relates to support case: https://vercel.com/tremendous-front-end/~/support/cases/262330

My company has a Vercel project, built on Gatsby which uses a Cloudflare CDN.

On July 29th, we had an issue where the JS files of my app would return a 404 after new deploys. I know that Vercel doesn’t recommend using a CDN, but I’m trying to understand why this seemed to be working before, and stopped around a month ago.

Seems like when the problem was happening, JS files coming from Vercel had a cache-control header with value public,max-age=31536000,immutable, which CF was caching. We solved the issue by adding a rule to CF for no 404s to be cached. Afterwards, seems like JS files come with header: public, max-age=0, must-revalidate, which means CF won’t cache any of them.

It seems like there was also a significant increase in our time to first byte which indicates that CF was correctly caching before, but is not anymore.

I wanted to know if there was a change in Vercel’s default header cache around July 29th. The fact that we’ve confirmed that files were temporarily getting the immutable header, but later changed to a must-revalidate header seems to indicate so, but we’re not sure about what was the value before that date, so that I can apply the same config, and get CF’s cache back to working.

I couldn’t find anything mentioning this change, except this community thread, that mentions a similar issue around the same time: Svelte cache 404 bug