Falsche Anzahl von Benutzern in der Gruppenübersicht

Irgendwie sind die in der Gruppenübersicht für die Vertrauensstufen 0–4 angezeigten Zahlen falsch (zu hoch).
Aktuell haben wir nur 439 Benutzer (plus System und Discobot). (Wir hatten in der Vergangenheit mehr Benutzer.)
Die Gruppenübersicht zeigt jedoch Folgendes:

Wenn man in der Gruppenübersicht auf Vertrauensstufe 0 klickt, wird die korrekte Anzahl angezeigt:

Vertrauensstufe 0: 557, aber innerhalb: 439
Vertrauensstufe 1: 480, aber innerhalb: 412
Vertrauensstufe 2: 300, aber innerhalb: 298
Vertrauensstufe 3: 37, aber innerhalb: 35
Vertrauensstufe 4: 4, aber innerhalb: 2

Auch ein „select count(*) from users

Die Zahlen werden regelmäßig korrigiert; es gibt jedoch einige seltene Fälle, in denen sie außer Takt geraten können.

Wenn du bis zu 12 Stunden wartest, richtet sich das von selbst wieder ein.

Funktioniert Sidekiq in deiner Installation ordnungsgemäß? Hast du kürzlich eine große Anzahl von Benutzern gelöscht?

Nun, selbst nach 12 Stunden sind sie immer noch falsch. Alle Werte von Vertrauensstufe 0 bis Vertrauensstufe 4 wurden nur um 2 reduziert (aus welchem Grund auch immer). Alle anderen Gruppenzähler scheinen korrekt zu sein.

Nein, der letzte Benutzerlöschvorgang lag bereits zwei Tage zurück.
In den letzten 14 Tagen habe ich nur 7 Benutzer gelöscht.
In den letzten 1,5 Jahren habe ich mehr als 2000 Benutzer gelöscht. Wir haben das Plugin autosupend installiert und suspendieren Benutzer automatisch, die länger als 365 Tage inaktiv sind. Diese automatisch suspendierten Benutzer und alle ihre Daten lösche ich mindestens einmal pro Woche, damit wir EU-DSGVO-konform bleiben.

Sidekick funktioniert einwandfrei, es gibt keine abgestürzten Jobs.
Soweit ich mich erinnere, hat sich die Anzahl der fehlgeschlagenen Jobs in den letzten Tagen ebenfalls nicht geändert.
Wofür ist die Warteschlange 0f13eb003564dea87a7cc8f25560ba0e?
Ist diese Warteschlange notwendig oder sollte ich sie löschen?

Ich glaube, ich habe das Problem gefunden: Die Tabelle group_users enthält immer noch Einträge für user_id, die nicht mehr existieren und nicht mehr in der Tabelle users vorhanden sind (insgesamt 182 Einträge für 117 user_id, die keinen entsprechenden Eintrag in users haben).
Irgendwie weist die Datenbank also Inkonsistenzen auf. Ich weiß nicht, wie das passiert ist.
Und nun die Frage: Wie kann ich das jetzt lösen?
Soll ich die Einträge in group_users, für die kein entsprechender Eintrag in users existiert, einfach manuell per SQL-Befehl löschen?

Ja, ich habe keine Ahnung, wie ihr in diesen Zustand geraten seid. Vielleicht ist das Ergebnis einer Migration oder so etwas?

Das Löschen ist völlig unbedenklich (allerdings wie bei allen solchen Aktionen vorher ein Backup der Datenbank erstellen).

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

Wenn du hier eine konsistente Reproduktion findest, würde ich das Problem gerne beheben.

Danke für deine Antwort. Ich habe gerade gelöscht und werde es erneut prüfen, sobald die nächsten Updates der Übersicht abgeschlossen sind.

sieht jetzt gut aus, Fall geschlossen.