ユーザー通知の「すべて」が空ですが、返信やいいねなどには項目があります

ユーザーのアバターをクリックすると通知が読み込まれるという報告を受けました。(これは 2.4.0.beta10 で動作する最近のアップグレードです。)非標準のプラグインが 1 つありますが、それが原因である可能性は低く、問題の影響は 1 人のユーザーに限られているようです(少なくとも私たちが把握している限りでは)。(その後、プラグインなしでアップグレードを行いましたが、それでも問題は解決しませんでした。)safe-mode でも改善されませんでした。

特定のユーザーの /u/username/notifications にアクセスすると通知は表示されませんが、「レスポンス」や「いいね」などをクリックすると、それぞれの種類の通知にアイテムが表示されます。psql に接続し、reindex table notifications をエラーなく実行しました。

アバターをクリックすると、JavaScript コンソールで以下のエラーが発生します:

_application-4715c32620ba9b83af00144510f68ca0f0bae8f745edf2339e3f249ceee88c3f.js:77240 Uncaught TypeError: Cannot read property 'dasherize' of undefined

コードを見ると、

      return [this.attach(notificationName.dasherize() + "-notification-item", attrs, {}, { fallbackWidgetName: "default-notification-item" }), (0, _virtualDom.h)("span.time", (0, _node.dateNode)(attrs.created_at))];

通知を取得する際にエラー、nil、null、または空の値が返されていることが原因ではないかと思われます(これは完全に的外れな推測かもしれませんが)。

Rails 側ではユーザーの通知を問題なく取得できます:

 pry(main)> Notification.where(user_id: 870).count
=> 372
# これもデータを返します:
u=User.find(870)
Notification.recent_report(u)

もう考え付く手がかりがありません。

「いいね!」 1

@pfaffman この問題は解決しましたか?私も同じ問題に直面しています。

ごめんなさい。修正した覚えも、まだ不具合が残っているという記憶もありませんし、どこだったのかも思い出せません。:man_shrugging:

はい。これまであらゆる方法を試しました。非公式プラグインをすべて削除し、Cloudflare も外し、何度か再構築し、ブラウザのストレージもクリアしました。しかし、一部のユーザーでは問題が解消されず、同じデバイスでも他のユーザーでは発生しません。また、表示されるエラーメッセージは、あなたが見ているものと完全に一致しています。その後、携帯電話で試してみましたが、動作しました。おそらくそのため、あなたが修正したことを覚えていないのでしょう。これが何かのプラグインが原因なのか、それともローカルなデバイス固有の問題なのかは分かりません。私のデスクトップでのみ発生していることを願っています :slight_smile:

すべてのブラウザ拡張機能を無効にした場合(シークレットモード)でも発生しますか?

「いいね!」 1

はい、シークレットモードでも発生しますが、頻度は低いです。おそらくハードディスクの容量使用量やクォータの違いが原因かもしれません。以下はシークレットモードでのスクリーンショットです。自分のマシンでのみ発生しているなら、この件を気にする必要はないかもしれませんね :thinking:

@pfaffman discourse-follow プラグインの再追加で私の問題が解決しました :slight_smile:

「いいね!」 4