Estou passando pela mesma situação
No meu caso, a Cloudflare não estava alterando imediatamente para public, mas, após algum tempo, a configuração definida no arquivo da página era substituída por public
Fui ver essa outra questão da vercel não definir o header que estava configurado no meu arquivo /api/v1/hello, pois acontece o mesmo que você mencionou
Fiz um pequeno teste editando o arquivo next.config.js e adicionei o header para a rota da api
{
source: '/api/v1/hello',
headers: [
{ key: 'Cache-Control', value: 'public, s-maxage=60, stale-while-revalidate' },
],
},
Depois dessa configuração, a rota /api/v1/hello ficou com a configuração certa (também testei com no-cache, no-store, max-age=0, must-revalidate)
Talvez esse não seja o melhor caminho, mas por enquanto não sei o que fazer
Não fiz nenhuma alteração no Cloudflare.