Le chiamate API falliscono a causa di un problema con 'silenced_till' di 'main_user_record'

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.

Stai utilizzando l’ultima versione di Discourse? Credo che il tuo problema sia stato risolto un paio di mesi fa in

Se stai ancora utilizzando la versione v3.5.2, questo è il problema, poiché è significativamente obsoleta e, come menzionato, il problema potrebbe essere risolto in una versione più recente. Prova ad aggiornare il tuo sito a una versione più moderna e riprova.

@zogstrip: Sì, stiamo utilizzando la versione 2026.1.3 (l’ultima ESR, rilasciata il 31 marzo 2026) e sembra che la correzione sia stata inclusa nella versione 2026.2.0 (e non è stata retroportata), quindi l’attuale ESR l’ha appena sfiorata.