用户配置文件中的重复电子邮件地址

在某个用户资料中,电子邮件地址列表里出现了完全相同的邮箱地址两次。第一条标记为“主邮箱”,第二条标记为“未确认”。

用户既无法删除第二个地址,也无法确认它(因为系统中已存在使用该地址的用户……)。我也无法删除它(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_idsuser_associated_accounts 表中也没有相关条目。请问应该在哪里进一步查找?

没错。我担心这可能是某个问题的征兆,将来可能会引发更严重的问题,而我们现在可以尽早修复。