새 사용자는 포럼에 가입할 수 없고, 초대 수락 시 내부 서버 오류 발생

도움 요청합니다!
저는 PractiTest의 Discuss 포럼 관리자입니다.

최근 신규 사용자가 로그인하지 못하고 있으며, "무언가 잘못되었습니다. 사용자 이름 또는 이메일이 이미 등록되었을 수 있습니다. 비밀번호 찾기 링크를 시도해 보세요."라는 오류 메시지를 받고 있습니다.
신규 사용자를 초대하면 초대 이메일은 수신하지만, 모든 세부 정보를 입력한 후 “Internal Server Error”(내부 서버 오류) 메시지가 표시됩니다.
오류 로그를 확인했는데, 초대 수락 시도에 대해 다음과 같은 내용이 표시됩니다:

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.

최신 Discourse 버전으로 업그레이드를 시도했고, (2.9.0.beta1)로 업그레이드한 것으로 보입니다.

도움을 부탁드립니다!

어떤 버전에서 업그레이드하셨나요? PostgreSQL 버전은 무엇인가요?

정확히 기억은 나지 않지만, 로그에서 찾을 수 있었던 내용은 다음과 같습니다:

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

그리고 Postgres 버전을 확인하는 방법은 무엇인가요?

제가 추가로 제공할 수 있는 정보가 있을까요?

혹시 있나요?
이와 관련하여 조언을 정말로 부탁드립니다.
@pfaffman

좋은 답변이 없어서 아무도 답을 제시하지 않은 것 같습니다.

Postgres 버전은 다음 경로에 있습니다:

/var/discourse/shared/standalone/postgres_data/PG_VERSION

혹은 이와 유사한 경로일 것입니다. 지금 휴대폰으로 보고 있습니다.

손상된 인덱스(corrupt index)인 것 같은데, 제 경험상 이런 문제는 꽤 오랜만에 발생하는 경우입니다. 해결 방법은 인덱스를 재구성해 보는 것입니다. 재구성이 실패하면 중복된 항목을 삭제하거나 수정해야 합니다. 이를 위해서는 SQL, 인덱스 및 Discourse에 대한 일부 지식이 필요합니다.

"corrupt index"를 검색해 보실 수 있습니다.

다른 원인일 수도 있습니다. Postgres 13에서는 이런 문제가 발생한 적이 없다고 생각했는데, 포럼이 얼마나 오래된 것인가요?

그리고 이거 정말 도움이 됐어요. 감사합니다!