main_user_record の silenced_till に関する問題により API 呼び出しが失敗

説明
API を使用してアクティブなユーザーを取得する際、/admin/users/list/active.json の一部のページで HTTP 500 エラーが発生します。

回避策
問題のあるページをスキップすれば、他のページは問題なく取得できます。

エラー
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?'
...

システムログによると、これらのエラーは 2025 年 10 月下旬に Discourse v3.5.1 から v3.5.2 へアップグレードした後に発生し始めました。参照されている行は、Silenced user can circumvent it entering anonymous mode - #12 by pangbo で議論された通り、FIX: Delegate silenced_till from anonymous user to main user account · Pull Request #32416 · discourse/discourse で導入されました。

解決策
私は Ruby の専門家ではありませんが、v3.5.2 の変更以降にアクティブになっていないユーザーを含む API JSON ページでこの問題が発生していることから、この変更に伴う特定のケースに対応するデータベースマイグレーションが不足しているのではないかと推測します。