Contagem de não lidos mostra Não lidos (14) mas /unread está vazio

Nesta bela manhã de quinta-feira, trago a vocês um interessante dilema. Estou vendo o que parece ser um contador de não lidos falso positivo no meu site.

O que acontece

A barra de navegação superior mostra Não lidos (14). Mas, ao clicar nela e ir para /unread, não há nenhum tópico não lido listado. A página diz que não há mais nada não lido.

Outros usuários que não são da equipe também estão vendo o mesmo problema, embora com contagens de não lidos diferentes.

No aplicativo Discourse no iOS, também vejo uma contagem de não lidos quando não há tópicos não lidos, novamente às vezes com um número diferente.

  • Plataforma: web para desktop e aplicativo Discourse no iOS
  • Afeta: vários usuários
  • Site: eurth.org

O que testei

Testei no Modo Seguro:

  • https://eurth.org/?safe_mode=no_themes,no_plugins
  • https://eurth.org/unread?safe_mode=no_themes,no_plugins

O problema ainda ocorre lá, então não parece ser causado por temas ou personalizações de plugins no lado do cliente. Não há sussurros em nenhum tópico, então provavelmente não é isso também.

Também não consigo usar Ignorar, porque não há nenhum botão Ignorar em /unread quando a lista de não lidos está vazia.

Comportamento esperado

Se a barra de navegação diz Não lidos (14), eu deveria ver 14 tópicos não lidos em /unread, ou pelo menos alguns tópicos não lidos visíveis.

Comportamento real

  • a barra de navegação diz Não lidos (14)
  • /unread está vazio
  • nenhum botão Ignorar está disponível
  • o problema persiste no Modo Seguro

Perguntas

  • Existe alguma maneira conhecida de reconstruir/reativar o estado de não lidos para um único usuário?
  • Existe alguma inconsistência no lado do servidor que possa fazer com que as contagens de não lidos persistam mesmo quando /unread está vazio?

Anteriormente, perguntei à IA em ask.discourse.org sobre o problema e, no final, ela aconselhou que eu publicasse um relatório de bug aqui.

2 curtidas

Ah, o fantasma das mensagens não lidas atacou seu site!

Você mudou alguma permissão de categoria recentemente ou moveu alguns tópicos para uma categoria segura? Algo alterou o estado de acompanhamento.

Você não gostaria de redefinir isso para todos os usuários, já que outros estão enfrentando o mesmo problema?

Acho que isso pode ser corrigido para todos via console do Rails, mas é um pouco complicado e preciso investigar e testar primeiro. Estou no celular no momento, mas tentarei postar uma solução daqui a pouco, caso ninguém mais o faça.

2 curtidas

Olá,

Estamos cientes desse bug e estamos tentando resolvê-lo. Todos nós estamos incomodados com isso :wink:

8 curtidas

Sim. Em particular, nossa equipe trabalhou em uma categoria semelhante à #documentação, que foi recentemente tornada pública assim que foi concluída.

Sim, com certeza. Minha ideia foi testar primeiro em mim mesmo e depois corrigir para todos. Como é um bug tão complicado de testar (pelo menos para mim), não quis levantar as esperanças de todos até haver uma solução funcional.

Obrigado pela confiança. Esta manhã, notei o lançamento mensal de maio de 2026 v2026.05 e pensei que poderia resolver o problema, mas ele ainda persiste. Tenho certeza de que a equipe está trabalhando nisso. O Discourse é incrível.

Oh, caramba. :flushed_face: Admito que revisei todos os relatórios de bugs relacionados. Por um momento, cheguei a considerar apenas ocultar a aba “Não lidas” da navegação e simplesmente ignorá-la. Mas isso não vai resolver nada, certo? Parece que ela até me segue aqui no Meta.

Screenshot 2026-05-28 at 13.52.18

1 curtida

ok, este script do Rails funcionará como um “marcar tudo como lido” global e forçará a contagem de não lidos de volta para 0 para todos os usuários, então, infelizmente, isso apagará qualquer contagem legítima de não lidos, além de quaisquer não lidos fantasma. Podemos fazer isso com um comando SQL no Rails. Mas note que isso não corrige o bug raiz. Além disso, boa ideia se você tiver um backup recente à mão, mas eu testei isso no meu fórum de desenvolvimento e funcionou.

cd /var/discourse
./launcher enter app
rails c

cole todo o bloco a seguir e pressione Enter

sql = <<~SQL
  UPDATE topic_users
  SET last_read_post_number = topics.highest_post_number
  FROM topics
  WHERE topics.id = topic_users.topic_id
    AND COALESCE(topic_users.last_read_post_number, 0) < topics.highest_post_number
    AND topic_users.notification_level IN (2, 3, 4) -- Acompanhando, Assistindo, Assistindo Primeira Postagem
SQL

# executar a atualização
result = ActiveRecord::Base.connection.execute(sql)
puts "Limpeza bem-sucedida de #{result.cmd_tuples} tópicos não lidos em todo o site."

# forçar os navegadores do cliente a descartar seu estado em cache e sincronizar com o banco de dados
MessageBus.publish("/topic-tracking-state", { clear: true })

os usuários podem precisar atualizar forçadamente para ver o estado não lido limpo.

3 curtidas

Executar backup. Baixar backup. SSH no servidor. Executar script.

South Park: E sumiu Meme

:white_check_mark: Problema resolvido.

Muito obrigado, @Lilly. Eu marcaria isso como solução se a opção estivesse disponível. Em vez disso, um boost terá que bastar. :rocket: Tenha um bom dia!

1 curtida

Nota: as leituras não lidas fantasma desaparecerão assim que finalizarmos a implantação:

Esperamos que não demore muito.

6 curtidas

Por leituras fantasmas, você quer dizer que não há realmente nada não lido, apenas uma contagem errada?
Recentemente, vi casos do oposto em várias instâncias do Discourse: definitivamente havia mensagens não lidas, e a contagem estava correta, mas a página “não lidas” simplesmente não as mostrava.

Isso parece ser um bug diferente do que está sendo discutido aqui, mas meu relatório de bug foi fechado como duplicata deste.

Esse é o mesmo problema…

estamos suprimindo ações pequenas e nossa implementação está apenas pela metade.

Portanto, esses são provavelmente tópicos onde uma ação pequena ocorre no final do tópico (por exemplo, fechamento etc…).

1 curtida

Não, os tópicos ausentes que descrevi no meu relatório de bug realmente têm novas postagens. Como disse no meu relatório de bug:

“não lido” é como acompanho as conversas, então isso corre o alto risco de eu simplesmente perder completamente que há algo para o qual eu deveria responder.

Não me importo muito em perder o “tópico fechado”, mas esse bug corre o risco de eu perder postagens reais.

Só queria acrescentar que também estou enfrentando esse problema desde quarta-feira (27 de maio) como usuário do fórum da Comunidade da OpenAI, tanto no iOS quanto no desktop.

GIF_2852759167

Adendo: esse vídeo da tela parece estar muito lento aqui. Desculpe por isso.

3 curtidas

Desculpe pelo ocorrido. @zogstrip está trabalhando em uma correção, que não deve demorar muito.

@RalfJung, vamos aguardar aqui. Assim que implementarmos a correção, se ela não resolver seu problema, podemos prosseguir com mais depurações.

2 curtidas

Sem problemas! Eu só queria dar mais visibilidade ao bug, já que estou vendo o mesmo problema na Comunidade da OpenAI também. Que bom saber que uma correção já está sendo trabalhada.

1 curtida

@zogstrip corrigiu o regresso aqui que causou isso:

O OpenAI acabou de ser implantado (faltam 2 minutos).

4 curtidas

Desde esta manhã, minha lista de não lidos mostrava 21 tópicos que a equipe da OpenAI encerrou e que eu já tinha visto/lido antes.

3 curtidas