Les nouveaux utilisateurs ne peuvent pas rejoindre le forum, accepter l'invitation entraîne une erreur de serveur interne

Aidez-moi !
Je suis administrateur d’un forum Discuss dans PractiTest.

Récemment, les nouveaux utilisateurs ne peuvent pas se connecter, ils reçoivent un message d’erreur « Quelque chose s’est mal passé, peut-être que le nom d’utilisateur ou l’e-mail est déjà enregistré. Essayez le lien mot de passe oublié ».
Lorsque j’invite les nouveaux utilisateurs, ils reçoivent l’e-mail d’invitation, mais après avoir rempli tous les détails, ils reçoivent un message « Erreur interne du serveur ».
J’ai vérifié les journaux d’erreurs, et voici ce que je vois pour la tentative d’acceptation de l’invitation :

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.

J’ai essayé de passer à la dernière version de Discourse, et il semble que j’y sois parvenu (2.9.0.beta1).

Aidez-moi s’il vous plaît !

De quelle version faisiez-vous la mise à niveau ? Quelle est la version de postgres ?

Je ne me souviens pas, mais voici ce que j’ai pu trouver dans les journaux :

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

Et comment puis-je vérifier la version de Postgres ?

Puis-je fournir d’autres informations ?

quelqu’un ?
J’apprécierais vraiment toute aide à cet égard
@pfaffman

Je pense que personne n’a proposé de réponses car il n’y en a pas de bonnes.

La version de Postgres se trouve dans
/var/discourse/shared/standalone/postgres_data/PG_VERSION

Ou quelque chose comme ça. Je suis sur mon téléphone.

Il semble que vous ayez un index corrompu, ce que je n’ai pas vu depuis un moment. La solution est d’essayer de reconstruire l’index et si cela échoue, de supprimer ou de corriger les entrées en double. Cela nécessite une compréhension de SQL, des index et de Discourse.

Vous pouvez rechercher “corrupt index”

Cela pourrait être autre chose. Je pensais que cela n’était arrivé à personne sur postgres 13. Quel âge a votre forum.

Merci beaucoup, d’ailleurs, cela a aidé !

1 « J'aime »