Notificações recorrentes de post de usuário devido ao plugin Seguir Usuário

Oi pessoal,

Uma dúvida rápida: desde que recuperei meu site de um backup, sempre que esse usuário específico responde a um tópico, ele gera notificações constantes de “Edição” para o usuário que criou o tópico ou para quem estava recebendo a resposta.

Tentei investigar e parece que há algo estranho no Sidekiq. Na seção “Retries”, alguns jobs ficam acumulando lá e nunca parecem ter sucesso. Após removê-los, as notificações param (até que a pessoa poste em outro tópico e um novo seja gerado).

As mensagens têm o seguinte formato:

Próxima Tentativa Contagem de Retries Fila Job Argumentos Erro
em 1 minuto 10 default Jobs::PostAlert {“post_id”=>25977142, “new_record”=>true, “options”=>nil, “current_site_id”=>“default”} Jobs::HandledExceptionWrapper: Wrapped ActiveRecord::RecordNotFound: Couldn’t find User with ‘id’=1452

Pelo que consigo inferir aqui, parece que um usuário não existe (embora isso aconteça com posts de um usuário que existe e está ativo). Então talvez seja outro. Existe alguma consulta ou algo que eu possa fazer para verificar isso?

Tentei procurar na documentação, mas, se precisar “consertar” algo, fico nervoso de estragar tudo :sweat_smile:

Agradeço muito qualquer ajuda!

Pequena Atualização:

  • Ocorre apenas com aquele usuário específico.
  • Aparece como se cada mensagem escrita por aquele usuário estivesse sendo “editada” nas notificações que os usuários recebem (ou seja: se ele está respondendo a outro usuário, esse usuário receberá notificações recorrentes de “edição” sobre aquele post).
  • A reconstrução não afeta o problema.
  • Excluir o job de nova tentativa no Sidekiq parece interrompê-lo para sempre naquela notificação, mas toda vez que aquele usuário posta, o problema ocorre novamente.

Edição Rápida:

  • Tentei consultar aquele usuário; ele não existe, mas não vejo como isso se relaciona a um usuário existente (talvez a consulta esteja errada?). Na página de administração, olhando este post tanto para a consulta quanto para a URL de administração, tenho um usuário “1451” e um usuário “1453”, mas (como diz o erro) não há um usuário “1452”. E o usuário que “dispara” isso é um moderador e seu ID é 55 :stuck_out_tongue:

Edição Rápida +:

  • Estive pensando aqui. Alguém pode me dizer as implicações de “injetar” o chamado “usuário ausente” que aparece nos erros? Ou seja, se eu adicionar aquela linha ao banco de dados, o Sidekiq e os jobs pararão de falhar?

Você está usando o plugin Follow User, por acaso? Enfrentei um problema semelhante em que usuários excluídos não eram removidos da lista de seguidos de alguém e as notificações ficavam presas em um loop. Minha solução foi remover manualmente alguns registros do banco de dados. O problema no plugin já foi corrigido, mas se você estiver usando uma versão mais antiga, ainda pode encontrar isso.

Nossa, Discourse! Sim, estou! :stuck_out_tongue:

Vou verificar a versão só para ver se pode ter relação. Um milhão de agradecimentos @bartv!

Ótimo! Note que, mesmo que o plugin tenha sido atualizado, seus dados podem ter sido corrompidos pela versão anterior. Encontrei meu antigo post sobre isso. Não é detalhado, mas talvez ajude a colocá-lo no caminho certo:

https://meta.discourse.org/t/follow-plugin/110579/41?u=bartv