No Safari do iPhone e do computador, eu saía da aba e, quando voltava, o site mostrava uma tela que parecia erro 403. Atualizar do jeito normal não resolvia; no computador, um recarregamento completo com F5 fazia a página abrir. Depois de testar sugestões que não mudaram nada, encontrei um ajuste de protocolo na Cloudflare que resolveu no meu domínio.
Confirme se a falha aparece ao voltar para a aba
O padrão que eu via era específico: abria o site no Safari, mudava para outro aplicativo e voltava. A página de erro continuava até eu forçar o recarregamento. Se o seu erro aparece exatamente nessa situação e o domínio passa pela Cloudflare, vale testar a opção de retomada 0-RTT. Um erro 403 em outro contexto pode ter outra causa.
Para comparar direito, use sempre o mesmo endereço. Abra o site, troque de aplicativo ou aba, volte e anote o que aparece. Tente primeiro atualizar normalmente; se a tela persistir, faça o recarregamento completo que você usaria naquele aparelho. No computador eu recorria ao F5. Repetir a mesma sequência antes e depois da mudança ajuda a ver se o sintoma realmente mudou.
Eu vi o comportamento no Safari do iPhone e do computador. Isso me deu uma pista para procurar algo na conexão do navegador, mas não provou que a causa estivesse no Safari, no JavaScript ou na Cloudflare. O recorte útil era a ordem dos acontecimentos: a página abria, eu saía da aba e o erro surgia quando voltava.
Desative a retomada 0-RTT no domínio
No painel da Cloudflare, selecione o domínio e abra Velocidade (Speed) > Configurações (Settings) > Otimização de protocolo (Protocol Optimization). Desative “Estabelecimento da conexão 0-RTT” (“0-RTT Connection Resumption”). Depois, volte ao Safari, abra o site, troque de aplicativo ou aba e repita a navegação.
O 0-RTT ajuda visitantes que já acessaram o domínio a retomar a conexão com menos latência. A documentação da Cloudflare descreve a retomada para pedidos GET, HEAD e OPTIONS e informa que a conexão acelerada é entre o navegador e a rede da Cloudflare. No meu site, desligar essa opção fez o erro parar. A configuração fica no domínio; não precisei alterar o JavaScript nem publicar uma nova versão do Worker.
Confira o nome do domínio selecionado antes de mudar o botão. O painel controla as opções por zona, então uma alteração numa zona não corrige automaticamente outro domínio da conta. Se o 0-RTT já estiver desligado, esse teste não explica o que você está vendo; não precisa sair alterando a aplicação só por causa desse relato.
Teste o QUIC separadamente
A IA tinha sugerido desligar o QUIC, que aparece perto do 0-RTT nas configurações de protocolo. Fiz esse teste primeiro e o erro continuou. Só consegui reproduzir a correção depois de desativar o 0-RTT.
QUIC é o transporte usado pelo HTTP/3; a opção de retomada 0-RTT é outra configuração. Elas ficam na área de otimização de protocolo e atuam na conexão do visitante com a Cloudflare, mas desativar uma não equivale a desativar a outra. Se você mexer nas duas ao mesmo tempo, perde a chance de identificar qual mudança fez diferença.
Se o QUIC estiver desligado e isso não alterar o erro, não há motivo para tratá-lo como a correção do meu caso. Registre o estado original, altere apenas uma configuração e volte a testar o mesmo endereço. Foi assim que percebi que o ajuste que resolveu para mim era o 0-RTT, embora a primeira sugestão apontasse para QUIC.
Confira o mesmo caminho depois da mudança
No meu caso, o site voltou a abrir depois que eu saía e retornava à aba. A Cloudflare documenta que 0-RTT se aplica à conexão entre o visitante e a rede dela; a falha que observei foi no meu domínio, não uma prova de que todo site em JavaScript ou todo erro 403 tenha essa origem.
Desligar a retomada tira o atalho de latência para quem retorna ao domínio. A página continuou funcionando no meu teste, mas o ganho de velocidade que o 0-RTT oferece deixa de ser usado. Eu manteria a alteração apenas depois de repetir o teste e confirmar que ela eliminou o sintoma que estava tentando resolver.
Se o erro continuar, confira primeiro se você alterou a zona certa e se o botão ficou realmente desligado. Anote o navegador, a ação anterior ao erro e se o recarregamento completo muda a tela. Se a página também falhar ao ser aberta do zero, ou se o problema aparecer fora do Safari, o caso já não corresponde ao que eu encontrei e vale investigar a resposta real do servidor e as outras regras do domínio.