Neue Benutzer können dem Forum nicht beitreten, Annahme der Einladung führt zu internem Serverfehler

Hilfe!
Ich bin Administrator eines Discuss-Forums in PractiTest.

Kürzlich können sich neue Benutzer nicht anmelden, sie erhalten die Fehlermeldung “Etwas ist schief gelaufen, vielleicht ist der Benutzername oder die E-Mail-Adresse bereits registriert. Versuchen Sie den Link Passwort vergessen”.
Wenn ich neue Benutzer einlade, erhalten sie die Einladungs-E-Mail, aber nach dem Ausfüllen aller Details wird die Meldung “Interner Serverfehler” angezeigt.
Ich habe die Fehlerprotokolle überprüft, und hier ist, was ich für den Versuch der Einlösungsannahme sehe:

ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"user_emails_pkey\" DETAIL: Key (id)=(45) already exists. ) app/models/invite_redeemer.rb:80:

Failed to handle exception in exception app middleware : PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"user_emails_pkey\" DETAIL: Key (id)=(45) already exists.

Ich habe versucht, auf die neueste Discource-Version zu aktualisieren, und es scheint mir gelungen zu sein (2.9.0.beta1).

Bitte helfen Sie!

Von welcher Version haben Sie ein Upgrade durchgeführt? Welche Version ist PostgreSQL?

Ich erinnere mich nicht, aber das ist, was ich in den Protokollen finden konnte:

from_version: 11d61cb
repository: /var/www/discourse/plugins/docker_manager

Und wie kann ich die PostgreSQL-Version überprüfen?

Kann ich noch weitere Informationen bereitstellen?

Jemand?\nIch würde mich sehr über jegliche Anleitung freuen\n@pfaffman

Ich glaube, niemand hat Antworten angeboten, weil es keine guten gibt.

Die Postgres-Version befindet sich in
/var/discourse/shared/standalone/postgres_data/PG_VERSION

Oder so ähnlich. Ich bin gerade auf meinem Handy.

Es klingt, als hättest du einen beschädigten Index, was ich schon eine Weile nicht mehr gesehen habe. Die Lösung besteht darin, zu versuchen, den Index neu zu erstellen, und wenn das fehlschlägt, die doppelten Einträge zu löschen oder zu korrigieren. Es erfordert ein gewisses Verständnis von SQL, Indizes und Discourse.

Du kannst nach “corrupt index” suchen.

Es könnte auch etwas anderes sein. Ich dachte, das sei niemandem bei Postgres 13 passiert. Wie alt ist dein Forum?

Vielen Dank übrigens, das hat geholfen!

1 „Gefällt mir“