Error al cargar la tarjeta del usuario

Después de la actualización de la versión, descubrí que no podía cargar la tarjeta de usuario haciendo clic en el avatar del usuario, y cuando entré en la configuración de información personal, apareció un mensaje de que no se podía encontrar la página.

Actualicé ayer y las Tarjetas de Usuario se cargan bien para mí.

Verifica el modo seguro. Si eso está bien, entonces quizás tienes un problema en uno de tus Temas o Componentes de Tema?

¿Podrías proporcionar algún error en la consola?

Estoy en modo seguro y todavía no puedo cargar, aquí está la información de mi registro


Error al manejar la excepción en el middleware de la aplicación de excepciones : ActiveRecord::StatementInvalid : PG::UndefinedTable: ERROR: la relación "gamification_leaderboard_cache_1_all_time" no existe LINEA 1: ...p.t

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: la relación "gamification_leaderboard_cache_1_all_time" no existe LINEA 1: ...p.total_score, p.position FROM "users" INNER JOIN gamificati.

Eso puede tener relevancia, pero me refería a los registros del navegador, ¿puedes compartir esos?

Es decir, la consola del navegador. (que generalmente se abre con 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

Entonces, no creo que estuvieras en modo seguro.

Este componente parece estar causando un problema:

topic-creator-avatar.hbr:1  [THEME 300 'Resumen de tema reciente'] Error de compilación: extensión de archivo desconocida 'hbr' (discurso/connectors/topic-list-before-columns/topic-creator-avatar.hbr)
(Anónimo) @ topic-creator-avatar.hbr:1

Eso es porque las plantillas hbr (en bruto) ya no son compatibles.

Reportar al autor de ese Tema.

@manuel ¿tú tampoco te encontraste con este?

1 me gusta

Así que parecen relacionados.

Parece que Gamification está modificando los datos del Usuario y está lanzando un error.

Por lo tanto, eso casi con certeza explica por qué la Tarjeta de Usuario no se está cargando.

Me parece que tienes más de un problema y están relacionados con los complementos, no con el Discourse principal.

Yo eliminaría:

  • Plugin Gamification
  • Cualquier componente de tema ([THEME 300 ‘Resumen de los últimos temas’]) que esté causando ese otro error del navegador (necesita ser reescrito para evitar el uso de plantillas .hbr)

hasta que puedas resolver esos problemas.

Sugiero reportar el error de Gamification en el Tema de Gamification.

Dado que es un plugin official, también puedes informar un error en la categoría Bug (aunque recuerda añadir la etiqueta gamification). :partying_face:

1 me gusta

Eso es cierto.

En cualquier caso, este tema ahora trata con dos problemas, y probablemente deberían dividirse en dos.

El problema de que la tarjeta del usuario no cargue es muy probablemente un problema de Gamificación, así que quizás usa este para eso. Se agregó la etiqueta #gamificación.

1 me gusta

¡Vale, así que ESO confunde! ¡La interfaz de edición de metadatos del tema ha cambiado!

[cita=“RGJ, post:8, tema:366391”]
@nolo, ¿no te encontraste con esto también?
[/cita]

Sí.

¡Captura de pantalla de 2025-05-13 11-54-39|690x26

Eso fue cuando intenté instalar una copia de seguridad. No se pudo acceder a las tarjetas de usuario y a las páginas de usuario hasta que eliminé la tabla de clasificación de la respaldo.

editar: en una nota diferente, parece que mi captura de pantalla no se abre en una luz? La carga tenía 1693px de ancho, pero solo se muestra en 690.

1 me gusta

Eso parece muy draconiano. Me pregunto si existe una solución más ligera.

1 me gusta

Esto parece potencialmente relacionado:

[quote=“manuel, post:13, topic:366391”]¿en otra nota, parece que mi captura de pantalla no se abre en un lightbox?
[/quote]

Sí, raro, original aquí para la gente que quiera poder leerlo :slight_smile:

[quote=“merefield, post:15, topic:366391”]Esto parece potencialmente relacionado
[/quote]
Podría ser. Esta migración elimina las vistas de caché versionadas que tienen _x al final (donde x es un dígito). Pero la tabla que omite es una tabla no versionada (sin _x).

@sheng_hualuo ¿puedes intentar ejecutar esto desde una consola de rails?

DiscourseGamification::LeaderboardCachedView.regenerate_all

2 Me gusta

¿gamification_leaderboard_cache_1_all_time no es la versión 1?

Creo que por alguna razón se cambió la convención de nombres.

No, ese es el ID de la tabla de clasificación. Todo se explica en el mensaje de commit del commit que mencionaste.

Además, mira la expresión regular 'gamification_leaderboard_cache_[0-9]+_[a-zA-Z_]+_[1-9]$'

1 me gusta

Ah, eso empieza a tener sentido. Entonces, la versión con versiones (ejem) fue eliminada, pero por alguna razón la nueva versión (ejem) no se ha materializado.

1 me gusta

No tengo el rastreo completo, pero creo que el error ocurre durante la serialización de gamification_score para la tarjeta de usuario.

Dada la naturaleza transitoria de estas vistas materializadas, no se espera que una búsqueda de puntuación cause un error en todo el sistema; debería recurrir a una “puntuación predeterminada” cuando la vista no exista.

Hay un error en la comprobación de existencia de la vista materializada. Informa que una vista existe cuando en realidad no lo hace (al menos no en el esquema public actual), lo que lleva a una búsqueda en una vista inexistente que resulta en el error.

Creo que lo que sucedió aquí fue que la vista materializada estaba presente en el esquema backup creado como parte de la restauración, pero no en el esquema public. El esquema backup se conserva durante un tiempo después de la restauración.

Tengo un PR listo con una solución.

3 Me gusta