Page rules not picking up cache-control header from origin server

I have enabled Origin Cache Control on my page rule to cache all html from a page. On the origin site, I have PHP setup to return the headers.

if(in_array($url, $shortcacheterms)) {
	header("cache-control: public, max-age=86400", true); //1 day
	header("nb-shortcache: true");
}
else{
	header("cache-control: public, max-age=2592000", true); //30 days
	header("nb-shortcache: false");
}

If i check the response headers, I can see the “nb-shortcache” header come back with true or false depending on the page I am visiting. The cache control header comes back with

cache-control: no-cache, must-revalidate, max-age=0

If I enable edge cache TTL, the page will get cached. I can setup a cron script to purge a list of URLs every day to get around this, but I would like to figure out why cloudflare isnt detecting the header i am returning

Do you perhaps also have a “browser cache control” directive? That will overwrite the header that’s sent back to the browser (but it should still respect your server’s directive for how CF caches the files).