Certains utilisateurs obtiennent des erreurs javascript en essayant de charger notre Discourse

Je suis en train de migrer notre Discourse auto-hébergé d’un serveur vers un autre, sur un domaine différent.

J’ai créé le nouveau Discourse en copiant le fichier app.yml original (mais avec le nom de domaine modifié et la messagerie temporairement désactivée). J’ai ensuite sauvegardé l’ancien serveur et restauré la sauvegarde sur le nouveau.

Le nouveau serveur fonctionne bien pour moi, mais certains de nos utilisateurs qui le testent pour moi obtiennent un écran partiellement rempli et non réactif.

J’ai demandé à l’un d’entre eux de m’envoyer son journal de console Chrome, qui ressemble à ceci :

plugin-api.js:19 [PLUGIN discourse-question-answer] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
p @ qa-edits.js:172
e.withPluginApi @ plugin-api.js:2017
initialize @ qa-edits.js:512
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [PLUGIN discourse-question-answer] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
p @ qa-edits.js:296
e.withPluginApi @ plugin-api.js:2017
initialize @ qa-edits.js:512
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [PLUGIN discourse-question-answer] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
p @ qa-edits.js:301
e.withPluginApi @ plugin-api.js:2017
initialize @ qa-edits.js:512
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [PLUGIN discourse-question-answer] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
p @ qa-edits.js:309
e.withPluginApi @ plugin-api.js:2017
initialize @ qa-edits.js:512
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [PLUGIN discourse-question-answer] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
p @ qa-edits.js:356
e.withPluginApi @ plugin-api.js:2017
initialize @ qa-edits.js:512
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [PLUGIN discourse-question-answer] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
p @ qa-edits.js:369
e.withPluginApi @ plugin-api.js:2017
initialize @ qa-edits.js:512
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [PLUGIN retort] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
(anonymous) @ retort-init.js:52
(anonymous) @ retort-init.js:203
e.withPluginApi @ plugin-api.js:2017
initialize @ retort-init.js:203
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [PLUGIN retort] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
(anonymous) @ retort-init.js:73
(anonymous) @ retort-init.js:203
e.withPluginApi @ plugin-api.js:2017
initialize @ retort-init.js:203
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [THEME 26 'Categories Boxes Layout'] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
(anonymous) @ b6863d93ed8f4b85f42f5111df3c50034797d706.js?__ws=forums.extinctionrebellion.uk:29
e.withPluginApi @ plugin-api.js:2017
initialize @ b6863d93ed8f4b85f42f5111df3c50034797d706.js?__ws=forums.extinctionrebellion.uk:26
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
plugin-api.js:19 [THEME 26 'Categories Boxes Layout'] Pour éviter les erreurs lors des tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.
be @ plugin-api.js:19
modifyClass @ plugin-api.js:104
(anonymous) @ b6863d93ed8f4b85f42f5111df3c50034797d706.js?__ws=forums.extinctionrebellion.uk:40
e.withPluginApi @ plugin-api.js:2017
initialize @ b6863d93ed8f4b85f42f5111df3c50034797d706.js?__ws=forums.extinctionrebellion.uk:26
o.initialize @ app.js:41
(anonymous) @ index.js:126
e.each @ dag-map.js:192
e.walk @ dag-map.js:121
e.each @ dag-map.js:66
e.topsort @ dag-map.js:72
_runInitializer @ index.js:138
runInstanceInitializers @ index.js:124
_bootSync @ instance.js:101
didBecomeReady @ application.js:650
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
program.js:103 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'getHelper')
    at u.helper (program.js:103:1)
    at opcode-compiler.js:229:1
    at ne (opcode-compiler.js:2214:1)
    at l (opcode-compiler.js:2149:1)
    at opcode-compiler.js:440:1
    at y.compile (opcode-compiler.js:422:1)
    at x (opcode-compiler.js:629:1)
    at opcode-compiler.js:1933:1
    at y.compile (opcode-compiler.js:422:1)
    at te (opcode-compiler.js:2152:1)
    at opcode-compiler.js:2131:1
    at Z.compile (opcode-compiler.js:2114:1)
    at $t.compile (runtime.js:4855:1)
    at Object.evaluate (runtime.js:1981:1)
    at Object.evaluate (runtime.js:1052:1)
    at It.evaluateSyscall (runtime.js:4263:1)
    at It.evaluateInner (runtime.js:4234:1)
    at It.evaluateOuter (runtime.js:4227:1)
    at $t.next (runtime.js:5058:1)
    at $t._execute (runtime.js:5045:1)
    at $t.execute (runtime.js:5038:1)
    at Qt.sync (runtime.js:5105:1)
    at Or.render (index.js:6757:1)
    at index.js:7021:1
    at Mt (runtime.js:4139:1)
    at Sr._renderRoots (index.js:7004:1)
    at Sr._renderRootsTransaction (index.js:7047:1)
    at Sr._renderRoot (index.js:6993:1)
    at Sr._appendDefinition (index.js:6919:1)
    at Sr.appendOutletView (index.js:6907:1)
    at p.invoke (queue.ts:203:14)
    at p.flush (queue.ts:98:13)
    at h.flush (deferred-action-queues.ts:75:19)
    at q._end (index.ts:616:32)
    at _boundAutorunEnd (index.ts:257:12)
helper @ program.js:103
(anonymous) @ opcode-compiler.js:229
ne @ opcode-compiler.js:2214
l @ opcode-compiler.js:2149
(anonymous) @ opcode-compiler.js:440
compile @ opcode-compiler.js:422
x @ opcode-compiler.js:629
(anonymous) @ opcode-compiler.js:1933
compile @ opcode-compiler.js:422
te @ opcode-compiler.js:2152
(anonymous) @ opcode-compiler.js:2131
compile @ opcode-compiler.js:2114
compile @ runtime.js:4855
(anonymous) @ runtime.js:1981
evaluate @ runtime.js:1052
evaluateSyscall @ runtime.js:4263
evaluateInner @ runtime.js:4234
evaluateOuter @ runtime.js:4227
next @ runtime.js:5058
_execute @ runtime.js:5045
execute @ runtime.js:5038
sync @ runtime.js:5105
Or.render @ index.js:6757
(anonymous) @ index.js:7021
Mt @ runtime.js:4139
_renderRoots @ index.js:7004
_renderRootsTransaction @ index.js:7047
_renderRoot @ index.js:6993
_appendDefinition @ index.js:6919
appendOutletView @ index.js:6907
p.invoke @ queue.ts:203
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
runtime.js:1051 Uncaught TypeError: Cannot read properties of null (reading 'syscall')
    at Object.evaluate (runtime.js:1051:1)
    at It.evaluateSyscall (runtime.js:4263:1)
    at It.evaluateInner (runtime.js:4234:1)
    at It.evaluateOuter (runtime.js:4227:1)
    at $t.next (runtime.js:5058:1)
    at $t._execute (runtime.js:5045:1)
    at $t.execute (runtime.js:5038:1)
    at Qt.sync (runtime.js:5105:1)
    at Or.render (index.js:6757:1)
    at index.js:7021:1
    at Mt (runtime.js:4139:1)
    at Sr._renderRoots (index.js:7004:1)
    at Sr._renderRootsTransaction (index.js:7047:1)
    at Sr._revalidate (index.js:7080:1)
    at p.invoke (queue.ts:201:14)
    at p.flush (queue.ts:98:13)
    at h.flush (deferred-action-queues.ts:75:19)
    at q._end (index.ts:616:32)
    at q.end (index.ts:298:10)
    at q._run (index.ts:667:14)
    at q._join (index.ts:640:19)
    at q.join (index.ts:362:17)
    at p (index.js:157:1)
    at index.js:258:1
evaluate @ runtime.js:1051
evaluateSyscall @ runtime.js:4263
evaluateInner @ runtime.js:4234
evaluateOuter @ runtime.js:4227
next @ runtime.js:5058
_execute @ runtime.js:5045
execute @ runtime.js:5038
sync @ runtime.js:5105
Or.render @ index.js:6757
(anonymous) @ index.js:7021
Mt @ runtime.js:4139
_renderRoots @ index.js:7004
_renderRootsTransaction @ index.js:7047
_revalidate @ index.js:7080
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
q._end @ index.ts:616
q.end @ index.ts:298
q._run @ index.ts:667
q._join @ index.ts:640
q.join @ index.ts:362
p @ index.js:157
(anonymous) @ index.js:258

Comment puis-je procéder pour déboguer et corriger ce problème, s’il vous plaît ?

Le plugin discourse-question-answer est obsolète. Il a été remplacé par discourse-post-voting.

Supprimez celui de votre app.yml et, si vous l’utilisiez, remplacez-le par l’autre. Reconstruisez ensuite.