Bug de pulo do resumo do chat

Os e-mails de Resumo de Chat estão sendo ignorados para usuários com um e-mail válido:

image

Fiz algumas análises e acredito saber o motivo:

Aqui é onde o pulo acontece:

Isso ocorre porque message.to está em branco.

message.to está em branco porque os argumentos enviados para send_user_email não incluem to_address e isso nunca é enriquecido com o e-mail principal do usuário, por exemplo:

args: {"type"=>"chat_summary", "user_id"=>3, "force_respect_seen_recently"=>true, "current_site_id"=>"default"}

Isso é chamado pelo Chat Mailer, e você notará que to_address está faltando:

E isso talvez esteja tudo bem, mas quando você chega ao topo de send_user_email, acredito que to_address deveria ser enriquecido com o e-mail do usuário para que, quando ele for passado adiante, o remetente receba acesso a essa propriedade e o envio de e-mail seja bem-sucedido.

Quando adicionei este pequeno monkey-patch a send_user_email, o problema desaparece:

      # BUG CORE: se não definirmos to_address, eventualmente o e-mail não será enviado e será ignorado.
      # Este é um bug core e precisaremos levantá-lo no Meta.
      if args[:to_address].blank? && user&.primary_email&.email
        args[:to_address] = user&.primary_email&.email
      end
2 curtidas

Obrigado pelas dicas de depuração, @merefield. Certificarei-me de que a equipe de experiência do membro analise isso em breve.

2 curtidas

Eu investiguei um pouco isso e, se seguirmos o rastro, deve haver um enriquecimento:

Começa do emailer aqui e então chama a extensão de notificação do usuário que enriquece com o email do usuário aqui e então o passa para o helper de construção de email aqui e finalmente define o endereço no construtor de mensagens aqui antes de enviá-lo.

Além disso, o email de resumo do chat já funciona em outros sites, então provavelmente há algo mais causando um problema aqui.

Acho que uma solução provisória é passar o email do usuário para o job, o que nos dará um pouco mais de confiança/visibilidade de que os dados corretos estão lá desde o início:

3 curtidas

Fechar, pois não recebemos feedback sobre a correção