メールアドレスの「+」以降のテキストが一意性チェックで無視される

再現手順

  1. https://community.drownedinsound.com で新しいアカウントを作成します。
  2. ユーザー名に + 文字を含む GMail アドレスを使用します。例: jobloggs+discourse@gmail.com
  3. ログアウトします。
    • 記号の後に異なるテキストを含む別の GMail アドレスを使用して、別のアカウントを作成します。例: jobloggs+discobot@gmail.com

期待される結果
新しいユーザーサインアップリクエストがメールで届きます。

実際の結果
「アカウントは既に存在します」という内容のメールが jobloggs+discourse@gmail.com に届きます。

注記
サインアップ後、アカウントが常に存在することを通知するために新しいメールは使用されません。以前は Discourse はこのように動作しませんでした。例えば、1 月 6 日以前は、このサイトでこのようなことは決して起こりませんでした。それ以降、少なくとも 1 回のサイトアップグレードがあり、それが起こってからこのバグが導入されました。

「いいね!」 1

これは、normalize_emails 設定の状態に応じて、メールアドレスにプラス記号を使用すると Discourse で発生する HTTP/500 エラーに関連している可能性があります。

「いいね!」 2

これについてはありがとうございます。おっしゃるとおり、アップグレード中にnormalize_emails設定が変更されていたことと、normalize_emailsが設定されている状態で既にプラス記号を使ったメールアカウントがある場合にバグが発生していたことが原因でした。

「いいね!」 1

この設定が、プラス記号を含むメールアドレスに変更しようとした際にユーザーが受けている500 fatal errorの原因でもあると思います。

そのようなアカウントがすでに存在する場合、有効にすべきではないのかもしれません。