Número incorreto de usuários na visão geral dos grupos

De alguma forma, os números exibidos na visão geral dos grupos para os níveis de confiança 0-4 estão incorretos (muito altos).
Atualmente, temos apenas 439 usuários (mais o sistema e o discobot). (Tivemos mais usuários no passado)
Mas a visão geral do grupo mostra:

Ao clicar no nível de confiança 0 na visão geral do grupo, o número correto é exibido:

Nível de confiança 0: 557, mas internamente 439
Nível de confiança 1: 480, mas internamente 412
Nível de confiança 2: 300, mas internamente 298
Nível de confiança 3: 37, mas internamente 35
Nível de confiança 4: 4, mas internamente 2

Um “select count(*) from users” também mostra 441, o que corresponde a 439 + sistema + discobot.

Os números exibidos para todos os outros grupos na visão geral do grupo parecem estar corretos.

Como posso corrigir os números na visão geral?

Estamos na versão atual 2.6.0.beta5 (698b7ace10), mas esse problema provavelmente já existia em versões mais antigas.

Os números são corrigidos regularmente; há alguns casos raros em que podem ficar dessincronizados.

Se você aguardar até 12 horas, o problema se resolverá sozinho.

O Sidekiq está funcionando corretamente na sua instalação? Você excluiu recentemente um grande número de usuários?

Bem, mesmo após 12 horas, eles ainda estão incorretos: todos os valores do nível de confiança 0 ao 4 foram reduzidos apenas em 2 (por alguma razão). Todos os outros contadores de grupo parecem estar corretos.

Não, a última exclusão de usuário ocorreu há dois dias.
Nos últimos 14 dias, excluí apenas 7 usuários.
Nos últimos 1,5 anos, excluí mais de 2000 usuários. Temos o plugin autosupend em funcionamento e suspendemos automaticamente usuários inativos há mais de 365 dias. Esses usuários suspensos automaticamente e todos os seus dados são excluídos pelo menos uma vez por semana, para que permaneçamos em conformidade com o RGPD da UE.

O Sidekick está funcionando corretamente, sem jobs inativos.
Pelo que me lembro, o número de jobs que apresentaram erros também não mudou nos últimos dias.
Para que serve a fila 0f13eb003564dea87a7cc8f25560ba0e?
Essa fila é necessária ou devo excluí-la?

Acho que encontrei o problema: a tabela group_users ainda possui entradas para user_id que não existem mais e que não estão mais na tabela users. (no total, 182 entradas para 117 user_id que não têm uma entrada correspondente em users)
Portanto, de alguma forma, o banco de dados tem algumas inconsistências. Não sei como isso aconteceu.
Agora a pergunta é: como posso resolver isso agora?
Devo simplesmente excluir manualmente, com uma instrução SQL, as entradas de group_users para as quais não existe entrada em users?

Sim, não faço ideia de como você chegou a esse estado, talvez seja o resultado de alguma migração ou algo assim?

A exclusão é perfeitamente segura (embora, como em tudo isso, faça um backup do seu banco de dados antes).

./launcher enter app
rails c
DB.exec("delete from group_users where user_id not in (select id from users)")

Se você puder encontrar uma reprodução consistente aqui, adoraria corrigir.

Obrigado pela sua resposta. Acabei de fazer a exclusão e verificarei novamente assim que as próximas atualizações da visão geral forem concluídas.

parece tudo certo agora, caso encerrado.