Descrizione
Quando si recuperano gli utenti attivi tramite l’API, alcune pagine di /admin/users/list/active.json restituiscono un errore HTTP 500.
Soluzione temporanea
Se si saltano le pagine problematiche, è possibile recuperare le altre pagine senza problemi.
Errore
L’errore del server che ha causato l’HTTP 500:
NoMethodError: undefined method '[]' for nil (NoMethodError)
main_user_record[:silenced_till]
^^^^^^^^^^^^^^^^
from app/models/user.rb:1335:in `silenced_till'
from active_record/attribute_methods/query.rb:48:in `public_send'
from active_record/attribute_methods/query.rb:48:in `query_attribute'
from active_model/attribute_methods.rb:273:in `silenced_till?'
from app/serializers/admin_user_list_serializer.rb:51:in `include_silenced_till?'
from active_model/serializer.rb:375:in `include?'
...
I nostri log di sistema indicano che questi errori sono iniziati dopo l’aggiornamento da Discourse v3.5.1 a v3.5.2 alla fine di ottobre 2025. Le righe citate sono state introdotte in FIX: Delegate silenced_till from anonymous user to main user account · Pull Request #32416 · discourse/discourse, come discusso in Silenced user can circumvent it entering anonymous mode - #12 by pangbo.
Soluzione
Non sono un esperto di Ruby, ma dato che sembra che questo accada con le pagine JSON dell’API che contengono utenti non attivi da quando sono state introdotte le modifiche in v3.5.2, ipotizzo che manchi una migrazione del database che gestisca un caso particolare legato a questa modifica.