Le schede utente per i visitatori anonimi scompaiono immediatamente con "500 Internal Server Error" in `card.json?include_post_count_for`

Ciao, non sono sicuro da quanto tempo stia succedendo e posso riprodurlo solo sulla mia istanza Discourse self-hosted, che ho appena aggiornato all’ultima versione al momento.

Quando un visitatore anonimo fa clic su qualsiasi avatar utente, il contorno della scheda utente appare per alcuni millisecondi e poi scompare immediatamente. La console degli errori F12 mostra:

GET   https://example.com/u/UserName/card.json?include_post_count_for=xxxxx

Status  500 Internal Server Error
Version  HTTP/2
Transferred  294 B (46 B size)
Referrer Policy  strict-origin-when-cross-origin
Request Priority  Highest

Questo accade anche in modalità provvisoria.

Non ho abilitato l’impostazione nascondi i profili utente dal pubblico, ma ho testato abilitandola qualche giorno fa, non sono sicuro se abbia a che fare con questo.

Sembra che possa essere collegato ai tuoi sforzi per includere il conteggio dei post sulla usercard. Alla fine hai creato un plugin per questo?

Non, je n’ai jamais réussi à faire fonctionner cela. Quoi qu’il en soit, cela aurait été désactivé en mode sans échec.

Le nombre ?include_post_count_for=xxxxx est le numéro de l’ID du sujet, pas de l’utilisateur.

J’ai supposé que la fonction qui échoue était celle du bouton « X messages dans ce sujet » qui apparaît dans une carte utilisateur.

La modalità sicura disabilita solo il codice front-end e lascia in vigore alcune cose lato server, quindi potrebbe comunque trattarsi di un plugin anche se si verifica in modalità sicura. C’è un post recente con maggiori informazioni qui Safe-mode failed with a plugin - #4 by david

Non riesco a replicare questo problema sul mio sito di test. Hai plugin/impostazioni aggiuntive/qualcosa di insolito che potrebbe avere un impatto? Ci sono altre informazioni nei /logs sull’errore?

Hmm, grazie per questo, sembra che tu abbia ragione, è stato a causa di questo plugin:

Ping @pfaffman

Message (184 copies reported)

NoMethodError (undefined method `in_any_groups?' for nil:NilClass)
lib/plugin/instance.rb:301:in `public_send'
lib/plugin/instance.rb:301:in `block (2 levels) in add_to_class'
app/serializers/user_card_serializer.rb:144:in `can_send_private_message_to_user'
(eval):18:in `_fast_attributes'
app/controllers/application_controller.rb:545:in `render_json_dump'
app/controllers/users_controller.rb:147:in `block (2 levels) in show'
app/controllers/users_controller.rb:140:in `show'
app/controllers/users_controller.rb:152:in `show_card'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/middleware/anonymous_cache.rb:367:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

Backtrace

plugins/discourse-allow-pm-to-staff/plugin.rb:52:in `block (2 levels) in activate!'
lib/plugin/instance.rb:301:in `public_send'
lib/plugin/instance.rb:301:in `block (2 levels) in add_to_class'
app/serializers/user_card_serializer.rb:144:in `can_send_private_message_to_user'
(eval):18:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:343:in `as_json'
2 Mi Piace

L’ho passato al team di Support perché è un plugin di terze parti. :+1:

2 Mi Piace

Questo problema persiste dopo l’aggiornamento?

Con la versione originale del plugin che non è stata modificata per anni, non ho mai notato questo problema. Poi, quando l’aggiornamento ha interrotto i messaggi privati tra gli utenti, ho disabilitato il plugin. E ora, da quando l’ho riattivato con le tue ultime correzioni, è quando ho notato questo problema.

Quindi il problema persiste?

Il problema della scomparsa delle schede utente per gli utenti anonimi si verifica quando GitHub - pfaffman/discourse-allow-pm-to-staff: Allow private messages to be sent to staff for users who could otherwise not send private messages. è abilitato e si risolve quando il plugin viene disabilitato.

1 Mi Piace

Credo che questo bug sia stato risolto ora. Aggiorna se non l’hai già fatto.

Confermato risolto, grazie!

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.