Échec du chargement de la carte utilisateur

Après la mise à jour de la version, j’ai constaté que je ne pouvais pas charger la carte utilisateur en cliquant sur l’avatar de l’utilisateur, et lorsque je suis entré dans les paramètres des informations personnelles, il a été indiqué que la page est introuvable.

J’ai mis à jour hier et les cartes utilisateur se chargent bien pour moi.

Vérifiez le mode sans échec. Si cela va, alors peut-être avez-vous un problème dans l’un de vos thèmes ou composants de thème ?

Pourriez-vous s’il vous plaît fournir toutes les erreurs de console.

Je suis en mode sans échec et je ne peux toujours pas charger, voici mes informations de journalisation


Échec de la gestion de l'exception dans le middleware de l'application d'exception : ActiveRecord::StatementInvalid : PG::UndefinedTable : ERREUR : la relation « gamification_leaderboard_cache_1_all_time » n'existe pas LIGNE 1 : ...p.t

ActiveRecord::StatementInvalid (PG::UndefinedTable : ERREUR : la relation « gamification_leaderboard_cache_1_all_time » n'existe pas LIGNE 1 : ...p.total_score, p.position FROM « users » INNER JOIN gamificati.

Cela peut avoir une incidence, mais je faisais référence aux logs du navigateur, pouvez-vous les partager ?

c’est-à-dire la console du navigateur. (souvent ouverte avec F12)

topic-creator-avatar.hbr:1  [THEME 300 '最新主题摘要'] Compile error: unknown file extension 'hbr' (discourse/connectors/topic-list-before-columns/topic-creator-avatar.hbr)
(匿名) @ topic-creator-avatar.hbr:1
[新] 使用 Edge 中的 Copilot 来解释控制台错误: 单击
         
         以说明错误。
        了解更多信息
        不再显示
composer-action-title.js:62 ℹ️ Discourse v3.5.0.beta5-dev — https://github.com/discourse/discourse/commits/7820dd2b8f — Ember v5.12.0
post-placeholder.js:53  [PLUGIN discourse-chain-topics] Deprecation notice: Defining connector classes via registerConnectorClass is deprecated. See https://meta.discourse.org/t/32727 for more modern patterns. [deprecation id: discourse.register-connector-class-legacy]
o @ post-placeholder.js:53
p @ topic-link.js:12
registerConnectorClass @ group.js:15
(匿名) @ topic-custom-field-initializer.js:32
e1 @ group.js:15
initialize @ topic-custom-field-initializer.js:13
(匿名) @ composer-action-title.js:62
(匿名) @ item.js:166
e.each @ form-template-validation.js:54
e.walk @ form-template-validation.js:54
e.each @ form-template-validation.js:54
e.topsort @ form-template-validation.js:54
_runInitializer @ item.js:166
runInstanceInitializers @ item.js:166
_bootSync @ composer-action-title.js:62
didBecomeReady @ index.js:93
invoke @ client-error-handler.js:88
flush @ client-error-handler.js:88
flush @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_ensureInstance @ client-error-handler.js:88
schedule @ client-error-handler.js:88
f @ bookmark.js:114
waitForDOMReady @ index.js:93
init @ index.js:93
_ @ caret-position.js:86
create @ caret-position.js:86
(匿名) @ start-app.js:4
(匿名) @ discourse-boot.js:13
(匿名) @ discourse-boot.js:1
post-placeholder.js:53  [PLUGIN discourse-chain-topics] Deprecation notice: Defining connector classes via registerConnectorClass is deprecated. See https://meta.discourse.org/t/32727 for more modern patterns. [deprecation id: discourse.register-connector-class-legacy]
o @ post-placeholder.js:53
p @ topic-link.js:12
registerConnectorClass @ group.js:15
(匿名) @ topic-custom-field-initializer.js:83
e1 @ group.js:15
initialize @ topic-custom-field-initializer.js:13
(匿名) @ composer-action-title.js:62
(匿名) @ item.js:166
e.each @ form-template-validation.js:54
e.walk @ form-template-validation.js:54
e.each @ form-template-validation.js:54
e.topsort @ form-template-validation.js:54
_runInitializer @ item.js:166
runInstanceInitializers @ item.js:166
_bootSync @ composer-action-title.js:62
didBecomeReady @ index.js:93
invoke @ client-error-handler.js:88
flush @ client-error-handler.js:88
flush @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_ensureInstance @ client-error-handler.js:88
schedule @ client-error-handler.js:88
f @ bookmark.js:114
waitForDOMReady @ index.js:93
init @ index.js:93
_ @ caret-position.js:86
create @ caret-position.js:86
(匿名) @ start-app.js:4
(匿名) @ discourse-boot.js:13
(匿名) @ discourse-boot.js:1
post-placeholder.js:53  [PLUGIN discourse-chain-topics] Deprecation notice: Defining connector classes via registerConnectorClass is deprecated. See https://meta.discourse.org/t/32727 for more modern patterns. [deprecation id: discourse.register-connector-class-legacy]
o @ post-placeholder.js:53
p @ topic-link.js:12
registerConnectorClass @ group.js:15
(匿名) @ topic-custom-field-initializer.js:141
e1 @ group.js:15
initialize @ topic-custom-field-initializer.js:13
(匿名) @ composer-action-title.js:62
(匿名) @ item.js:166
e.each @ form-template-validation.js:54
e.walk @ form-template-validation.js:54
e.each @ form-template-validation.js:54
e.topsort @ form-template-validation.js:54
_runInitializer @ item.js:166
runInstanceInitializers @ item.js:166
_bootSync @ composer-action-title.js:62
didBecomeReady @ index.js:93
invoke @ client-error-handler.js:88
flush @ client-error-handler.js:88
flush @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_ensureInstance @ client-error-handler.js:88
schedule @ client-error-handler.js:88
f @ bookmark.js:114
waitForDOMReady @ index.js:93
init @ index.js:93
_ @ caret-position.js:86
create @ caret-position.js:86
(匿名) @ start-app.js:4
(匿名) @ discourse-boot.js:13
(匿名) @ discourse-boot.js:1
discourse-home-page.js:79  discourse-home-page error: invalid path ""
s @ discourse-home-page.js:79
initialize @ discourse-home-page.js:42
(匿名) @ composer-action-title.js:62
(匿名) @ item.js:166
e.each @ form-template-validation.js:54
e.walk @ form-template-validation.js:54
e.each @ form-template-validation.js:54
e.topsort @ form-template-validation.js:54
_runInitializer @ item.js:166
runInstanceInitializers @ item.js:166
_bootSync @ composer-action-title.js:62
didBecomeReady @ index.js:93
invoke @ client-error-handler.js:88
flush @ client-error-handler.js:88
flush @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_ensureInstance @ client-error-handler.js:88
schedule @ client-error-handler.js:88
f @ bookmark.js:114
waitForDOMReady @ index.js:93
init @ index.js:93
_ @ caret-position.js:86
create @ caret-position.js:86
(匿名) @ start-app.js:4
(匿名) @ discourse-boot.js:13
(匿名) @ discourse-boot.js:1
one-version.js:10  DEPRECATION: Components with separately resolved templates are deprecated. Migrate to either co-located js/ts + hbs files or to gjs/gts. Tried to lookup 'template:components/sidebar-theme-toggle'. [deprecation id: component-template-resolving] This will be removed in ember-source 6.0.0. See https://deprecations.emberjs.com/id/component-template-resolving for more details.
(匿名) @ one-version.js:10
(匿名) @ base.js:71
(匿名) @ deprecate.js:100
(匿名) @ base.js:71
(匿名) @ deprecate.js:100
(匿名) @ base.js:71
l @ index.js:49
(匿名) @ render-tags.js:60
(匿名) @ base.js:71
u @ index.js:49
(匿名) @ base.js:71
(匿名) @ base.js:71
(匿名) @ base.js:71
(匿名) @ bookmark.js:114
(匿名) @ base.js:71
(匿名) @ form-template-validation.js:54
(匿名) @ base.js:71
s @ post-placeholder.js:53
(匿名) @ base.js:71
r @ base.js:71
c @ deprecate.js:100
k @ upload.js:65
h @ binary.js:7
(匿名) @ theme-setting.js:6
(匿名) @ theme-setting.js:6
lookupComponent @ theme-setting.js:6
(匿名) @ theme-setting.js:6
A @ theme-setting.js:6
o @ theme-setting.js:6
(匿名) @ theme-setting.js:6
compile @ theme-setting.js:6
ef @ theme-setting.js:6
(匿名) @ theme-setting.js:6
compile @ theme-setting.js:6
compile @ backup-codes.js:33
(匿名) @ backup-codes.js:33
evaluate @ backup-codes.js:33
evaluateSyscall @ backup-codes.js:33
evaluateInner @ backup-codes.js:33
evaluateOuter @ backup-codes.js:33
next @ backup-codes.js:33
_execute @ backup-codes.js:33
execute @ backup-codes.js:33
sync @ backup-codes.js:33
(匿名) @ theme-setting.js:6
(匿名) @ theme-setting.js:6
tA @ backup-codes.js:33
_renderRoots @ theme-setting.js:6
_renderRootsTransaction @ theme-setting.js:6
_renderRoot @ theme-setting.js:6
_appendDefinition @ theme-setting.js:6
appendOutletView @ theme-setting.js:6
invoke @ client-error-handler.js:88
flush @ client-error-handler.js:88
flush @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_end @ client-error-handler.js:88
(匿名) @ client-error-handler.js:88
Promise.then
(匿名) @ client-error-handler.js:88
flush @ bookmark.js:114
_scheduleAutorun @ client-error-handler.js:88
_ensureInstance @ client-error-handler.js:88
schedule @ client-error-handler.js:88
f @ bookmark.js:114
waitForDOMReady @ index.js:93
init @ index.js:93
_ @ caret-position.js:86
create @ caret-position.js:86
(匿名) @ start-app.js:4
(匿名) @ discourse-boot.js:13
(匿名) @ discourse-boot.js:1
includes.js?v=116e2a6fd81c286e004e2a0afb03baa1:840 
            
            
            GET https://www.tometo.me/u/shen_hualuo/card.json 500 (Internal Server Error)
(匿名) @ includes.js?v=116e2a6fd81c286e004e2a0afb03baa1:840
send @ jquery.js:7408
ajax @ jquery.js:7408
a @ base.js:71
(匿名) @ named-references.js:49
e @ named-references.js:49
A @ base.js:71
(匿名) @ moment.js:257
(匿名) @ group.js:15
(匿名) @ named-references.js:49
e @ named-references.js:49
getAndRemove @ group.js:15
findDetails @ moment.js:257
findByUsername @ moment.js:257
_showCallback @ item.js:166
(匿名) @ topic-link.js:12
invoke @ client-error-handler.js:88
flush @ client-error-handler.js:88
flush @ client-error-handler.js:88
_end @ client-error-handler.js:88
end @ client-error-handler.js:88
_runExpiredTimers @ client-error-handler.js:88
setTimeout
setTimeout @ client-error-handler.js:88
_installTimerTimeout @ client-error-handler.js:88
_reinstallTimerTimeout @ client-error-handler.js:88
_later @ client-error-handler.js:88
later @ client-error-handler.js:88
T @ bookmark.js:114
_show @ topic-link.js:12
_showCardOnClick @ topic-link.js:12
_cardClickHandler @ topic-link.js:12
_run @ client-error-handler.js:88
_join @ client-error-handler.js:88
join @ client-error-handler.js:88
p @ bookmark.js:114
(匿名) @ bookmark.js:114

includes.js?v=116e2a…04e2a0afb03baa1:840 
 
 GET https://www.tometo.me/u/shen_hualuo.json 500 (Internal Server Error)
(匿名)	@	includes.js?v=116e2a…04e2a0afb03baa1:840
send	@	jquery.js:7408
ajax	@	jquery.js:7408
a	@	base.js:71
(匿名)	@	named-references.js:49
e	@	named-references.js:49
A	@	base.js:71
(匿名)	@	moment.js:257
(匿名)	@	group.js:15
(匿名)	@	named-references.js:49
e	@	named-references.js:49
getAndRemove	@	group.js:15
findDetails	@	moment.js:257
afterModel	@	post-placeholder.js:53
runAfterModelHook	@	topic-link.js:12
(匿名)	@	topic-link.js:12
k	@	named-references.js:49
w	@	named-references.js:49
invoke	@	client-error-handler.js:88
flush	@	client-error-handler.js:88
flush	@	client-error-handler.js:88
_end	@	client-error-handler.js:88
(匿名)	@	client-error-handler.js:88
Promise.then		
(匿名)	@	client-error-handler.js:88
flush	@	bookmark.js:114
_scheduleAutorun	@	client-error-handler.js:88
_ensureInstance	@	client-error-handler.js:88
schedule	@	client-error-handler.js:88
(匿名)	@	hashtag-autocomplete.js:158
T	@	named-references.js:49
resolve	@	topic-link.js:12
T	@	form-template-validation.js:54
getTransitionByIntent	@	topic-link.js:12
transitionByIntent	@	topic-link.js:12
doTransition	@	topic-link.js:12
transitionTo	@	topic-link.js:12
_doTransition	@	upload.js:65
transitionTo	@	binary.js:7
(匿名)	@	theme-setting.js:6
l	@	UIPlugin.js:138
click

Donc, je ne crois pas que vous étiez en mode sans échec.

Ce composant semble causer un problème :

topic-creator-avatar.hbr : 1  [THÈME 300 'Résumé du sujet le plus récent'] Erreur de compilation : extension de fichier inconnue 'hbr' (discourse/connectors/topic-list-before-columns/topic-creator-avatar.hbr)
(Anonyme) @ topic-creator-avatar.hbr:1

C’est parce que les modèles hbr (bruts) ne sont plus pris en charge.

Signaler au responsable de ce Thème.

@manuel, n’as-tu pas rencontré ce problème également ?

1 « J'aime »

Ces éléments semblent donc liés.

Il semble que Gamification modifie les données de l’utilisateur et génère une erreur.

Cela explique donc très probablement pourquoi la carte utilisateur ne se charge pas.

Il me semble que vous avez plus d’un problème et qu’ils sont liés aux add-ons, pas au cœur de Discourse.

Je supprimerais :

  • Le plugin Gamification
  • Quel que soit le composant de thème ([THÈME 300 ‘最新主题摘要’]) qui cause cette autre erreur de navigateur (doit être réécrit pour éviter l’utilisation de modèles .hbr)

jusqu’à ce que vous puissiez résoudre ces problèmes.

Suggérez de signaler l’erreur Gamification sur le Sujet Gamification.

Comme il s’agit d’un plugin official, vous pouvez également signaler un bug dans la catégorie Bug (n’oubliez pas d’ajouter le tag gamification). :partying_face:

1 « J'aime »

C’est vrai.

Dans tous les cas, ce sujet traite maintenant de deux problèmes, et ils devraient probablement être séparés en deux.

Le problème de la carte utilisateur qui ne se charge pas est très probablement un problème de Gamification, donc utilisez peut-être celui-ci pour cela. tag gamification ajouté.

1 « J'aime »

(d’accord, c’est donc CE QUI EST déroutant, l’interface d’édition du méta du sujet a changé !)

Oui.

Screenshot From 2025-05-13 11-54-39

C’était lorsque j’ai essayé d’installer une sauvegarde. L’accès aux cartes utilisateur et aux pages utilisateur a échoué jusqu’à ce que je supprime le classement de la sauvegarde.

edit : sur une autre note, il semble que ma capture d’écran ne s’ouvre pas dans une lightbox ? L’upload faisait 1693px de large, mais il n’est affiché qu’en 690.

1 « J'aime »

Cela semble très draconien. Je me demande s’il existe une solution plus légère ?

1 « J'aime »

Cela semble potentiellement lié :

Oui, bizarre, l’original ici pour ceux qui veulent vraiment pouvoir la lire :slight_smile:

C’est possible. Cette migration supprime les vues de cache versionnées qui se terminent par _x (où x est un chiffre). Mais la table qu’elle manque est une table non versionnée (sans _x).

@sheng_hualuo pouvez-vous essayer d’exécuter ceci depuis une console rails ?

DiscourseGamification::LeaderboardCachedView.regenerate_all

2 « J'aime »

gamification_leaderboard_cache_1_all_time n’est pas la version 1 ?

Je pense que pour une raison quelconque, la convention de nommage a été modifiée.

Non, c’est l’identifiant du tableau de classement (leaderboard). Tout est expliqué dans le message de commit que vous avez mentionné.

De plus, regardez l’expression régulière 'gamification_leaderboard_cache_[0-9]+_[a-zA-Z_]+_[1-9]$'

1 « J'aime »

Ah, tout cela commence à avoir du sens. La version (ahem) de la version a été abandonnée, mais pour une raison quelconque, la nouvelle version (ahem) ne s’est pas matérialisée.

1 « J'aime »

Je n’ai pas la trace complète, mais je pense que l’erreur se produit lors de la sérialisation de gamification_score pour la carte utilisateur.

Compte tenu de la nature transitoire de ces vues matérialisées, une recherche de score ne devrait pas causer d’erreur système ; elle devrait revenir à un « score par défaut » lorsque la vue n’existe pas.

Il y a un bug dans la vérification de l’existence de la vue matérialisée ici. Elle signale qu’une vue existe alors qu’elle n’existe pas réellement (du moins pas dans le schéma public actuel), ce qui entraîne une recherche sur une vue inexistante et donc une erreur.

Je pense que ce qui s’est passé ici, c’est que la vue matérialisée était présente dans le schéma backup créé dans le cadre de la restauration, mais pas dans le schéma public. Le schéma backup est conservé pendant un certain temps après la restauration.

J’ai une PR prête avec une correction.

3 « J'aime »