Em #42413, a lógica de invalidação de cache do tópico foi redesenhada.
No entanto, Discourse.cache.keys("page_not_found_topics:*").each { |key| Discourse.cache.redis.del(key) } percorrerá todas as chaves do Redis, causando problemas de desempenho e podendo resultar em tempo limite se houver uma grande quantidade de chaves.
Nessa circunstância, os usuários podem encontrar um erro 500 ao moverem um tópico para uma categoria restrita.
Este commit restringe o escopo de varredura para Discourse.cache.normalize_key("page_not_found_topics:#{locale}"), que é muito menor que o Redis inteiro, e também adiciona um teste para evitar a execução de scan_each. Em #42413, a lógica de invalidação de cache do tópico foi redesenhada.