Benutzerkarten für anonyme Besucher verschwinden sofort mit "500 Internal Server Error" in `card.json?include_post_count_for`

Hallo, ich bin mir nicht sicher, seit wann das passiert, und ich kann es nur auf meiner selbst gehosteten Discourse-Instanz reproduzieren, die ich gerade auf die aktuellste Version aktualisiert habe.

Wenn ein anonymer Besucher auf einen beliebigen Benutzeravatar klickt, erscheint der Umriss der Benutzerkarte für einige Millisekunden und verschwindet dann sofort wieder. Die F12-Fehlerkonsole zeigt:

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

Dies geschieht auch im abgesicherten Modus.

Ich habe die Einstellung Benutzerprofile vor der Öffentlichkeit verbergen nicht aktiviert, aber ich habe vor ein paar Tagen getestet, ob ich sie aktivieren kann. Ich bin mir nicht sicher, ob das damit etwas zu tun hat.

Dies scheint mit Ihren Bemühungen, die Beitragsanzahl auf der Benutzerkarte anzuzeigen zusammenzuhängen. Haben Sie dafür am Ende ein Plugin erstellt?

Nein, das habe ich nie zum Laufen gebracht. Auf jeden Fall wäre das im abgesicherten Modus deaktiviert gewesen.

Die Zahl ?include_post_count_for=xxxxx ist die Nummer der Topic-ID, nicht des Benutzers.

Ich ging davon aus, dass die Funktion, die fehlschlägt, für die Schaltfläche „X Beiträge in diesem Topic“ ist, die in einer Benutzerkarte angezeigt wird.

Der abgesicherte Modus deaktiviert nur Frontend-Code und lässt einige serverseitige Dinge unberührt, sodass es sich immer noch um ein Plugin handeln könnte, auch wenn es im abgesicherten Modus auftritt. Es gibt hier einen aktuellen Beitrag mit weiteren Informationen: Safe-mode failed with a plugin - #4 by david

Ich kann dieses Problem auf meiner Testseite nicht reproduzieren. Haben Sie Plugins/zusätzliche Einstellungen/etwas Ungewöhnliches, das Auswirkungen haben könnte? Gibt es weitere Informationen im /logs über den Fehler?

Hmm, danke dafür, es sieht so aus, als hättest du Recht, es lag an diesem Plugin:

Pinging @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 „Gefällt mir“

Ich habe es an Support weitergeleitet, da es sich um ein Plugin eines Drittanbieters handelt. :+1:

2 „Gefällt mir“

Besteht dieses Problem nach dem Upgrade weiterhin?

Mit der ursprünglichen Version des Plugins, die jahrelang unverändert war, ist mir dieses Problem nie aufgefallen. Als das Update dann PMs zwischen Benutzern kaputt machte, habe ich das Plugin deaktiviert. Und jetzt, seit ich es mit Ihren neuesten Korrekturen wieder aktiviert habe, ist es, dass mir dieses Problem aufgefallen ist.

Besteht das Problem also weiterhin?

Das Problem mit dem Verschwinden der Benutzerkarten für anonyme Benutzer tritt auf, während GitHub - pfaffman/discourse-allow-pm-to-staff: Allow private messages to be sent to staff for users who could otherwise not send private messages. aktiviert ist, und löst sich auf, wenn das Plugin deaktiviert wird.

1 „Gefällt mir“

Ich glaube, dieser Fehler wurde jetzt behoben. Bitte aktualisieren Sie, falls Sie dies noch nicht getan haben.

Bestätigt behoben, danke!

1 „Gefällt mir“

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