사용자 프로필에 이메일 주소가 중복됩니다

특정 사용자 프로필에서 이메일 주소 목록에 동일한 이메일 주소가 두 번 나열되어 있습니다. 첫 번째 항목은 "기본(primary)"으로 표시되어 있고, 두 번째 항목은 “미확인(unconfirmed)” 상태입니다.

사용자는 두 번째 주소를 삭제하거나 확인(이 주소로 이미 등록된 사용자가 존재하기 때문에…)할 수 없습니다. 제가 삭제하려고 해도 (DELETE 요청에 428 응답이 반환됩니다) 불가능합니다.

데이터베이스를 검색해 보았지만 user_emails 테이블에는 단 하나의 항목만 나열되어 있습니다. 이런 상황이 발생하는 원인과 해결 방법에 대해 혹시 아이디어가 있으신가요?

인덱스가 손상되었을 수도 있습니다. 현재 사용 중인 Discourse와 Postgres 버전은 무엇인가요?

소셜 로그인이 활성화되어 있나요? 하나의 가능성은 사용자가 이메일 주소로 가입을 시도했지만 인증 이메일에 응답하지 않았고, 이후 소셜 로그인을 사용했다는 것입니다.

Rails 콘솔에서, 혹은 SQL을 통해 직접 수정을 시도해 볼 수 있습니다.

주소가 두 번 표시되는 것이 혼란스럽긴 하지만, 실제 문제는 없지 않나요? 사용자는 로그인할 수 있지만, 프로필에 추가된 주소가 하나 더 있는 상태입니다.

  • Discourse 2.7.0.beta4 (33df4233c9)
  • Postgres 13 (dpkg 출력: 13.1-1.pgdg100+1)

네, 활성화되어 있습니다. 이 사용자는 어떤 소셜 계정에도 연결되어 있지 않아 현재 해당 기능을 사용할 수 없는 상태입니다 – 제 이해 범위 내에서 말입니다.

시해 보았지만 SQL에서 중복된 주소를 찾을 수 없었습니다. user_emails에는 이 사용자에 대해 단 한 줄만 표시되고, user_open_ids와 user_associated_accounts에는 항목이 없습니다. 어디서 검색해야 할지 힌트를 주실 수 있나요?

맞습니다. 이것이 문제의 증상일 수 있고, 나중에 더 심각한 증상을 보일 수 있으며, 초기에 수정할 수 있을 것 같아 걱정됩니다.