User Notes プラグインがサイトを壊しています

メンテナンスしている2つのサイトを更新したところ、どちらのサイトでも問題が発生し、user notes プラグインにたどり着きました。

昨日、私のサイトの1つで「ホワイトスクリーン・オブ・デス」が発生しました。セーフモード以外ではサイトが表示されませんでした。app.yml でプラグインをコメントアウトして再構築したところ、サイトは復旧しました。

別のサイトでは、ロゴやハンバーガーメニューなどを含むトップナビゲーションが消え、コンソールにエラーが表示されました。以下を参照してください。管理ダッシュボードからプラグインを無効にすると、サイトは復旧しました。

vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:12 Uncaught (in promise) Error: Could not find module `discourse/plugins/discourse-user-notes/discourse-user-notes/connectors/user-profile-controls/show-notes-on-profile` imported from `discourse/plugins/discourse-staff-notes/discourse-user-notes/connectors/admin-user-controls-after/add-user-notes-button`
    at vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:12:31
    at c (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:12:96)
    at s.findDeps (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:24:158)
    at c (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:12:152)
    at requireModule (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:6:60)
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4420:78
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4420:1
    at Array.forEach (<anonymous>)
    at a (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4417:32)
    at u (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4420:39)
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4424:261
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4420:1
    at Array.forEach (<anonymous>)
    at a (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4417:32)
    at c (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4424:64)
    at e.renderedConnectorsFor (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4414:65)
    at e.init (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:1196:50)
    at e.r [as init] (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2090:9)
    at g (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2007:98)
    at e.create (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2015:108)
    at g.create (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:604:93)
    at ye.create (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:747:9)
    at Object.evaluate (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3299:9)
    at Object.evaluate (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3134:13)
    at Dt.evaluateSyscall (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3435:61)
    at Dt.evaluateInner (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3429:138)
    at Dt.evaluateOuter (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3429:59)
    at Wt.next (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3490:26)
    at Wt._execute (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3489:25)
    at Wt.execute (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3488:298)
    at Yt.sync (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3492:86)
    at Er.render (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1061:546)
    at vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1087:31
    at It (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3425:5)
    at Rr._renderRoots (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1086:34)
    at Rr._renderRootsTransaction (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1091:10)
    at Rr._renderRoot (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1085:50)
    at Rr._appendDefinition (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1080:6)
    at Rr.appendOutletView (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1078:6)
    at invoke (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3834:139)
    at p.flush (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3826:74)
    at h.flush (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3839:207)
    at q._end (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3896:9)
    at _boundAutorunEnd (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3848:605)
discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:5224 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'addEventListener')
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:5224:291
    at Array.forEach (<anonymous>)
    at e.didInsertElement (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:5224:253)
    at e.r [as didInsertElement] (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2090:9)
    at e.trigger (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2233:34)
    at e.r [as trigger] (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2090:9)
    at ye.didCreate (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:761:32)
    at Nt.commit (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3414:3)
    at Mt.commit (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3423:17)
    at It (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3425:19)
    at Rr._renderRoots (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1086:34)
    at Rr._renderRootsTransaction (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1091:10)
    at Rr._revalidate (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1091:490)
    at invoke (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3834:129)
    at p.flush (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3826:74)
    at h.flush (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3839:207)
    at q._end (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3896:9)
    at _boundAutorunEnd (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3848:605)
「いいね!」 4

メタにもインストールされていると思ったのですが?再現手順はありますか?

「いいね!」 4

テストサイトをアップデートしたら、どうなったかお知らせします…

編集:アップグレード前にいくつかのユーザーノートを追加して、問題が発生するかどうかを確認しましたが、問題はありませんでした。問題なく動作しました。

「いいね!」 4

テストサイト (80fce67150) とここ Meta の両方でそのプラグインを使用していますが、すべて正常に動作しているようです。

実際、そう言えば、「ユーザーノートを追加」ボタンが一部のユーザーカードにしか表示されず、他のカードには表示されません。

これは、過去にユーザーノートが添付されたことがある人にのみ表示されるのだと思います。一度も添付されたことがない人には生成されていないようです。

@tobiaseigen これらのサイトのいずれかで、すでにユーザーノートを使用しましたか?

「いいね!」 5

パズルですね。サイトで機能しないため、現在は無効にしました。確認できません。ホワイトスクリーンの死を呈するサイトでは、過去に使用しましたが、どのユーザーだったかは覚えていません。ヘッダーが表示されないサイトでは、使用したことはありません。

「いいね!」 2

もしかしたら、それが原因で、前例がないため、何かを把握するのが難しかったのかもしれません。


`Uncaught (in promise) Error: Could not find module `discourse/plugins/discourse-user-notes/discourse-user-notes/connectors/user-profile-controls/show-notes-on-profile` imported from `discourse/plugins/discourse-staff-notes/discourse-user-notes/connectors/admin-user-controls-after/add-user-notes-button`

そして、2つ目は、
Cannot read properties of null

:memo: アイコンは通常、全員のユーザーカードに表示されるはずなので、ここでも少しおかしいです。

「いいね!」 1

うーん… ホワイトスクリーンオブデスサイトで、カスタムテーマコンポーネントの設定にこれが表示されています。次に、このテーマコンポーネントを無効にしてから、ユーザーノートを再度有効にすることを試すのが良いかもしれません。

申し訳ありませんが、ember または .ember-view CSS セレクターの使用は許可されていません。これらの名前は実行時に動的に生成され、時間の経過とともに変更されるため、最終的に CSS が壊れます。別のセレクターを試してください。

「いいね!」 2

あなたの言っていることを誤解していない限り…これは正しくないと思います。ユーザノートがその特定のユーザに対して作成された場合にのみ、:memo: アイコンを見たことがあります。プラグインが有効になっているだけで、すべてのユーザに適用されているのを見たことはありません。

「いいね!」 3

投稿のユーザー名の横にあるものは、メモがある場合にのみ表示されます。しかし、ユーザーカードにあるものは、それらを簡単に追加する方法だと思っていました。

勘違いかもしれませんが。:slightly_smiling_face:

「いいね!」 2

ああ…そうですね。UIについて、お互いに少し違うことを話しているようです。ユーザープロフィールでは、プラグインが有効になっている場合、ボタンは常に表示されているべきです。つまり、次のようになります。

2022-08-26_jammy_user_notes

しかし、トピック内では、ユーザーノートがある場合にのみ、その名前の隣に表示されるべきです。

それに、「thusly」なんて誰が使うんだ?この私だよ。

「いいね!」 2

私のミスです。スクリーンショットも添付すべきでした。:slight_smile: ユーザーカードの「:memo:」のことです。

一部のユーザーにのみ表示され、他のユーザーには表示されません。以前は全員に表示されていたと思っていたのですが。

「いいね!」 2

ああ…近づいてきましたね。:wink:
ユーザーに関連付けられたメモがある場合にのみ、そこで表示されるのを見たことがあります。それが期待することですが、意図されたものかどうかを確認するためにコードを確認する必要があります。

「いいね!」 3

Dockerイメージを再構築してから同じ問題が発生しています。

サイトのホームページでChromeの開発者コンソールに繰り返し表示されるメッセージは次のとおりです。

Uncaught (in promise) Error: Could not find module `discourse/plugins/discourse-user-notes/discourse-user-notes/connectors/user-profile-controls/show-notes-on-profile` imported from `discourse/plugins/discourse-staff-notes/discourse-user-notes/connectors/admin-user-controls-after/add-user-notes-button`
    at loader.js:247:1
    at c (loader.js:258:1)
    at s.findDeps (loader.js:168:1)
    at c (loader.js:262:1)
    at requireModule (loader.js:24:1)
    at plugin-connectors.js:65:1
    at plugin-connectors.js:51:1
    at Array.forEach (<anonymous>)
    at a (plugin-connectors.js:46:1)
    at u (plugin-connectors.js:64:1)
    at plugin-connectors.js:93:1
    at plugin-connectors.js:51:1
    at Array.forEach (<anonymous>)
    at a (plugin-connectors.js:46:1)
    at c (plugin-connectors.js:84:1)
    at e.renderedConnectorsFor (plugin-connectors.js:107:1)
    at e.init (plugin-outlet.js:53:1)
    at e.r [as init] (index.js:449:1)
    at g (core_object.js:149:1)
    at e.create (core_object.js:685:1)
    at g.create (index.js:551:1)
    at ye.create (index.js:1054:1)
    at Object.evaluate (runtime.js:3301:1)
    at Object.evaluate (runtime.js:1312:1)
    at Dt.evaluateSyscall (runtime.js:5232:1)
    at Dt.evaluateInner (runtime.js:5188:1)
    at Dt.evaluateOuter (runtime.js:5180:1)
    at Wt.next (runtime.js:6191:1)
    at Wt._execute (runtime.js:6175:1)
    at Wt.execute (runtime.js:6166:1)
    at Yt.sync (runtime.js:6250:1)
    at Er.render (index.js:7576:1)
    at index.js:7896:1
    at It (runtime.js:5074:1)
    at Rr._renderRoots (index.js:7876:1)
    at Rr._renderRootsTransaction (index.js:7928:1)
    at Rr._renderRoot (index.js:7863:1)
    at Rr._appendDefinition (index.js:7770:1)
    at Rr.appendOutletView (index.js:7752:1)
    at invoke (backburner.js:353:1)
    at p.flush (backburner.js:241:1)
    at h.flush (backburner.js:447:1)
    at B._end (backburner.js:999:1)
    at B._boundAutorunEnd (backburner.js:648:1)

管理画面のプラグインから無効にするとエラーは消えますが、メモが表示されなくなります。

discourse-user-notesではなくdiscourse-staff-notesを実行していることが原因でしょうか?

「いいね!」 2

AFAIK ユーザーノートはスタッフノートの新しい名称であり、同じものです。https://github.com/discourse/discourse-staff-notes にアクセスすると、次の場所にリダイレクトされます。

古いパスを参照している場合は、app.yml を修正しても害はありません。

「いいね!」 3

FWIW 本日、Tobias と同じエラーが発生しました。

同じエラーで、モバイルでは白い画面、デスクトップではトップナビゲーションが表示されません。
ホームページで発生しました(他のページでも発生したかもしれませんが、確認していません)。

非常に長い話ですが、要約すると、このコメントが決め手です。

同じリポジトリにリンクしていても、プラグインが discourse-user-notes と呼ばれていないプラグインディレクトリにインストールされると、プラグインは壊れます。

Tobias、あなたは古いやり方で、まだ discourse-staff-notes と呼んでいましたよね?

「いいね!」 6

もちろん! このサイトは2015年に立ち上げたので、かなり昔気質です。名前を変更したばかりで、今再構築しているので、どうなるか見てみましょう。ヒントをありがとう!

「いいね!」 4

名前を変更して再構築し、有効にしたところ、再び動作するようになりました!

@RGJ さん、ありがとうございます!

私たちも2015年です!

「いいね!」 6

更新と同じように、回転も行う必要があると思います。ただ、それを忘れないようにする必要があります。

「いいね!」 5

このトピックは、最後の返信から30日後に自動的にクローズされました。新しい返信は許可されていません。