I’ve noticed that 301 redirect without “cache-control” header gets cached on Cloudflare. When I click “purge everything” in the control panel, these 301 are still cached even though I’m not sending the 301 redirect anymore. (the “date” header in the reply is showing an old date).
How are you checking for the 301 response? If you are using a web browser, it likely has cached the 301 like it is supposed to. 301 is a permanent redirect and that is the normal behavior. You can view the domain in your browser history, right click and choose Forget This Site
and it should purge the cached 301 response.
Alternately you could use another tool like curl
.