サブスクリプションプラグインが新規ログインユーザーを存在しないコントリビューターページに直接送信するようになりました

ここ数週間、通常のユーザー名とパスワードでフォーラムにログインすると、存在しない /s/contributors ページに直接リダイレクトされてしまいます。ログイン自体は成功しているようですが、一瞬だけ以下の画像が表示されます:

その後、フォーラムのメンバーは以下の不安を招くメッセージにリダイレクトされます:

このリダイレクトが発生するようにサイトに変更を加えたわけではありません(通常のアップグレードをすべて適用しただけです)。どなたかこの問題を解決する手助けをしていただけますか?

エラーログには以下が表示されています:

TypeError: e.plans is undefined
Url: https://foo.com/assets/plugins/discourse-subscriptions-e36523da482c3a11b8f5407c5ed5001ddc6fecc4528a555476e7a94814347753.js
Line: 1
Column: 1119
Window Location: https://foo.com/s/contributors

よろしくお願いいたします!

「いいね!」 1

@Amicable これは奇妙で興味深いですね。サイトのリンクをPMで送っていただけないでしょうか?確認させてください。

/s/contributors は、新しいキャンペーンバナーのコントリビューター情報を取得するためにサブスクリプションプラグインが使用するルートですが、どのような意味でもそこにリダイレクトされるべきではありません。これを行うコードパスは私の知る限り存在しません。

「いいね!」 7

@Amicable これについていくつかテストを行いましたが、「ログイン必須」を有効にしても再現できませんでした。ユーザーを招待したり、新規ユーザーをゼロから設定したりも試みました。

ユーザーは最初に購読ページ(例:/s/prod_xxxxxxxxxx)にアクセスしているのでしょうか?それとも /s でしょうか?

ログイン前にブラウザのキャッシュをクリアすると、問題は解消されますか?

公式インストールガイドに従ってインストールを構成していますか?この問題が発生した後に最新バージョンへアップグレードしましたか?

@Amicable 最近、新しい自動キャンペーン作成機能を試して、すぐに削除しましたか?

@justin 現在は再現できませんが、試行中に同じメッセージに遭遇しました。/admin/plugins/discourse-subscriptions/products に、自動作成されたキャンペーンの痕跡(製品自体またはその中のプラン)が残っていました。それらを削除すると、ログインが正常に復元され、/s/contributors へのリダイレクトも不再有りました。

@Kchalk さん、その情報は助かります。再現を確認するために早速試してみます。もし具体的な再現手順が分かれば、それも教えていただけると助かります。

編集:再現を確認しました。

  • キャンペーンバナーの配置を「Top」に設定
  • サイトはログイン必須

これは自動キャンペーン作成機能ではなく、特にバナーに関連する問題のようです。ログイン処理中に /s/contributors ルートが呼び出されるタイミングが原因ではないかと考えられます。幸い、ホームロゴをクリックすればすぐにサイトに入れますが、エンドユーザーにとっては懸念される点だと理解できます。

「いいね!」 2

@Kchalk はい、何かあるかもしれませんね。私は各ページの上部にバナーを設置する実験を行いましたが、その後削除しました。

@justin 数ヶ月前にバナーを試したことを覚えています。実装はしていませんが、各ページの上部に表示させるというユースケースでしたので、@Kchalk さんの発見と一致しているようです。

上記で示したスクリーンショットは、ログイン直後に全ユーザーに表示されます。

このインストールは非常に標準的で、カスタマイズやプラグインはほとんどありません。インストールガイドに従って作成されましたが、それは数年前のことです。

サブスクリプションプラグインは現在も無効化されたままですが、再びユースケースが生まれるまで再活性化しない見込みです。

ログインが必要なサイトでの問題が解消されるよう修正いたします。:slight_smile:

「いいね!」 5

しばらくして管理員としてデモサイト https://lets.trydiscourse.com にログインしたところ、同じ問題が発生していました。テスト用にこのサイトを利用してください!

修正は非常にシンプルで、PR はこちらで公開されています!

「いいね!」 5