E-mails de notificação de tópico não são enviados ao adicionar Cor de Equipe à postagem

Atualmente executando o Discourse 3.5.0.beta7-dev (7562bc2b15)

Os e-mails de notificação de tópico não estão sendo enviados ao agendar uma postagem para publicação sob certas condições.

Deparamo-nos com um bug muito incomum e, embora estejamos executando a versão mais recente, isso ocorreu algumas vezes nos últimos meses, então o problema existe há algum tempo.

Temos uma categoria chamada #Announcements e todos os usuários estão definidos como Watching First Post por padrão.

Nossas etapas para reproduzir o problema:

  1. Compor um novo tópico em uma categoria oculta apenas para a equipe
  2. Aplicar uma cor de equipe à primeira postagem no novo tópico
  3. Definir um timer de tópico, Agendar Publicação, definir a categoria como #Announcements e definir a hora/data

O que deveria acontecer:

  • O tópico muda de #staff para #Announcements
  • Dezenas de milhares de e-mails são enviados
  • Cada usuário recebe uma notificação

O que acontece:

  • O tópico muda de #staff para #Announcements
  • Nenhum e-mail é enviado
  • Cada usuário recebe uma notificação

Enquanto esperava o tempo de publicação agendado chegar, pude ver essas duas tarefas pendentes (filtradas pelo ID da Postagem):

Dez minutos depois, quando o tópico foi publicado em #Announcements, as tarefas desapareceram:

As notificações foram enviadas, veja o que uma conta de teste recebeu:

Mas ainda nenhum e-mail foi enviado.

Normalmente, neste ponto, veríamos dezenas de milhares de e-mails começando a se enfileirar em Scheduled e gradualmente se movendo para Enqueued, mas nada acontece, zero e-mails são enviados.

Também não há nada nos logs de erro do Discourse.

As postagens continham uma enquete, mas suspeito que o conteúdo da postagem seja irrelevante, no entanto, estou mencionando isso aqui caso a enquete também tenha alguma relevância.

O teste de falha de hoje pode ser encontrado aqui, se ajudar alguém: https://greyarro.ws/t/do-you-own-a-drone-thats-not-on-the-what-do-you-fly-list/98146.json

A chave para essa falha parece ser muito causada pela ação de adicionar uma cor de equipe à primeira postagem no tópico que está agendado para publicação.

Todas as outras postagens com publicação agendada enviam e-mails normalmente, adicionar uma cor de equipe faz com que falhe todas as vezes.

3 curtidas

Consigo reproduzir isso. :raised_hand:

Meu passo a passo básico:

  • Ajuste a janela de tempo de e-mail para 1 minuto (opcional, mas acelera as coisas)
  • Como administrador, certifique-se de que o usuário de teste esteja Assistindo à Primeira Publicação para uma categoria de teste
  • Como administrador, crie um tópico na categoria Staff
  • Use a chave inglesa de postagem para adicionar a Cor da Equipe à primeira(/única) postagem
  • Defina o timer do tópico para Agendar Publicação na categoria de teste em 1 minuto
  • Tenha um pequeno devaneio sobre sorvete e espere o tópico ser publicado e mais um minuto passar para cobrir a janela de e-mail
  • Como administrador, verifique as notificações do usuário de teste e, em seguida, verifique os logs de e-mail do site

Resultado Esperado: o usuário de teste recebe uma notificação sobre o tópico agendado e um log de e-mail está presente significando que uma notificação por e-mail acompanhante foi enviada

Resultado Atual: o usuário de teste recebe uma notificação no site, mas nenhum e-mail é enviado

(Também realizei este teste sem a etapa de cor da equipe como controle. Tudo funcionando bem. Tanto a notificação no site quanto a notificação por e-mail foram enviadas)

É algo relacionado à cor da equipe ajustando o post_type para ‘2’ (moderator_action) e isso não sendo contabilizado no código?

4 curtidas

Eu sabia que esqueceria uma das etapas de reprodução :rofl:

Esta é uma observação interessante:

2 curtidas

Sim, uma vez que você transforma uma postagem em uma postagem de staff, ela se torna Post.types[:moderator_action]. Acho que deveríamos notificar aqui, a omissão parece ser um erro.

Adicionado um pri-medium (algum momento nas próximas 4 semanas) para que a equipe possa dar uma olhada.

2 curtidas

Por curiosidade, responder a um usuário e definir uma cor de staff na resposta também faz com que a notificação por e-mail não seja enviada a esse usuário?