Para alguns grupos onde existem ‘fantasmas de mensagens’, isso não funciona. Esses grupos podem ser identificados por esta consulta (desde que a troca de mensagens tenha sido restrita nas configurações de interação do grupo):
SELECT id, name, has_messages, messageable_level
From groups
Where messageable_level < 10
AND messageable_level <> 3
AND has_messages = true
ORDER by id
Você pode fazer um “hack” na tabela groups para forçar a redefinição também (no console do Rails, é claro, faça backup primeiro!).
Group.where(id: XXX).update_all(has_messages: false)
Se isso não funcionar ou reverter, você também pode precisar limpar as tabelas topic_groups e topic_allowed_groups:
TopicGroup.where(group_id: XXX).destroy_all
TopicAllowedGroup.where(group_id: XXX).destroy_all