Cf-cache-status is DYNAMIC even with cache everything page rule

I’ve noticed that all of the image assets on my website (eg. jpg or png files) aren’t being cached by Cloudflare, because they have the cf-cache-status: DYNAMIC header. They have no query string parameters and I’d assumed that Cloudflare caches all image assets. I’ve tried setting a page rule to cache everything and set the edge TTL for everything on the path of my images but it the cache status is still dynamic. Can anyone suggest why this is happening?

Here’s what I see in the chrome dev tools:

And my Cloudflare page rule is:*
Cache Level: Cache Everything, Edge Cache TTL: 4 hours

Is that the first Page Rule in your list? Would you happen to have Development Mode enabled on the Overview page?

@sdayman Those are good questions - no, development mode is disabled and yes, it is the first page rule