Tópico fixo padrão não aparece devido ao plugin de política

Percebi algo estranho sobre o tópico de boas-vindas padrão (fixado) em Sem Categoria: ele não aparece para solicitações anônimas.

Não há nenhum limite para lê-lo que eu possa identificar: o registro está aberto, esta é a categoria padrão Sem Categoria (com os recursos de segurança especiais) e nenhuma configuração limita a visualização do conteúdo.

A visualização JSON mostra a versão renderizada da postagem, mas a versão HTML está vazia:

Esse comportamento ocorre apenas neste fórum, o mestre de uma configuração multi-sítio.

https://ps.zoethical.org/t/welcome-to-p-s/8/1.json

Alguma ideia?

Há uma resposta com uma policy que causa problemas e carece de botões… Talvez isso esteja relacionado?

Apenas para ser completo, veja como fica quando estou logado:

It’s visible via Safe mode, so it’s a customization or plugin:

@hellekin Tenho exatamente o mesmo problema. Se você remover a postagem da política ou desativar o plugin nas configurações, o tópico aparecerá.
Parece haver um bug, e usuários não registrados não conseguem ver o tópico se uma política for usada em uma postagem.

Alguém pode nos ajudar?

Tenho estado a rastrear o culpado: discourse-policy, como sugerido por @Vraag. Ao contrário do que disse @Vraag, o plugin afeta o tópico que “desaparece” mesmo quando desativado: ter o plugin na lista é suficiente para que o tópico “desapareça” quando o utilizador não está autenticado.

A resposta que faz uso do plugin Policy é a primeira: Exploring community-based social media - #2 by system - Share - petites singularités
O Markdown desse post:

[policy group=trust_level_1 reminder=daily]
Não utilizamos cookies de terceiros.
[/policy]

Aqui está o registo de erro:

TypeError: p is null
Url: https://ps.zoethical.org/assets/plugins/discourse-policy-60b8413b741df408ff16f757f644f9de7cb64099d24c33dc3d85ef735478d72a.js
Line: 1
Column: 3373
Window Location: https://ps.zoethical.org/t/welcome-to-p-s/8

Aqui está o backtrace:

r@https://ps.zoethical.org/assets/plugins/discourse-policy-60b8413b741df408ff16f757f644f9de7cb64099d24c33dc3d85ef735478d72a.js:1:3373
m@https://ps.zoethical.org/assets/plugins/discourse-policy-60b8413b741df408ff16f757f644f9de7cb64099d24c33dc3d85ef735478d72a.js:1:5934
value/<@https://ps.zoethical.org/assets/application-e5979c62e7a903663f877b29059ee0b4707ac3d11c783460ad7d0920ed92e017.js:73:2648
value@https://ps.zoethical.org/assets/application-e5979c62e7a903663f877b29059ee0b4707ac3d11c783460ad7d0920ed92e017.js:73:2619
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10297
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
u@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:12330
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:11710
o@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13433
i@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13297
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:11816
o@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13433
i@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13297
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13118
rerenderWidget@https://ps.zoethical.org/assets/application-e5979c62e7a903663f877b29059ee0b4707ac3d11c783460ad7d0920ed92e017.js:33:21229
y</t.invoke@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:9727
y</t.flush@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:8732
b</t.flush@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:10780
H</n._end@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:15438
H</n.end@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:12105
H</n._run@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:15973
H</n._join@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:15758
H</n.join@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:12813
c@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:12:3338
R/<@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:12:4903
h@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:2:9935
o</f<@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:2:10240

Note que o plugin.rb carrega uma série de dependências antes mesmo de fazer qualquer coisa. Talvez o erro venha de uma dessas dependências que espera um utilizador autenticado.

Oi
Sim, esqueci de dizer que você deve editar a postagem após desativar o plugin, senão ele continuará afetando-a.

Editar a postagem como em…? Removendo a marcação de política?

Não, desative o plugin, edite a postagem que contém o plugin (adicione, por exemplo, uma letra aleatória no início da postagem), salve-a e usuários não registrados poderão ver a postagem.
O markup será exibido como [policy][/policy] e não terá efeito.
Pergunto-me por que apenas desativar o plugin não é suficiente. Você precisa editar a postagem após isso, caso contrário, ele continuará fazendo efeito.

De fato, editar o post enquanto o plugin está desativado, mesmo alterando o conteúdo dentro das tags [policy], é suficiente para restaurar a visualização do tópico.

Parece ser um bug no plugin discourse-policy, @sam?

Estranhamente, reativar o plugin restaura a situação ao normal. Não tenho certeza do que fazer com isso.

Acho que este tópico servirá como referência futura, então aqui está: se algum tópico “desaparecer” da visualização anônima e você tiver uma postagem usando o plugin discourse-policy

  1. desative o plugin — se isso não funcionar: remova-o do arquivo de configuração YAML do contêiner e reconstrua.
  2. edite a postagem usando a tag [policy] para que ela seja reprocessada e desativada (talvez rebuild HTML seja suficiente?)
  3. restaure o plugin.

Tadaa! Alguma mágica aconteceu.

O que você quer dizer com “aconteceu alguma mágica”?

Fiz como você disse e obtive isso:

    [policy group=testgroup reminder=daily]
Teste
    [/policy]

O que não resolve o problema. Mais do que uma correção, isso é… apenas não usar o plugin.
Se eu editar a postagem ou reconstruir o HTML, o plugin funcionará, mas o tópico desaparecerá novamente para usuários não registrados.

edição

Pelo que posso ver, é o mesmo para você. Em seu tópico, a segunda postagem aparece assim:

[policy group=trust_level_1 reminder=daily]
    Não utilizamos cookies de terceiros.
    [/policy]

Então ainda não temos nenhuma “solução”. A menos que você chame de solução não usar o plugin xD. Você poderia simplesmente ter removido a marcação da segunda postagem; o resultado seria o mesmo.
Como está agora, você só pode usá-lo em categorias privadas, para que usuários não registrados não consigam ver o tópico de qualquer maneira.