Описание
При получении списка активных пользователей через API некоторые страницы `/admin/users/list/active.json` возвращают ошибку HTTP 500.
Обходное решение
Если пропустить проблемные страницы, остальные можно получить без ошибок.
Ошибка
Ошибка сервера, вызвавшая HTTP 500:
```ruby
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?’
…
```
Судя по логам нашей системы, эти ошибки начали возникать после обновления с версии Discourse v3.5.1 до v3.5.2 в конце октября 2025 года. Упомянутые строки были добавлены в FIX: Delegate silenced_till from anonymous user to main user account · Pull Request #32416 · discourse/discourse, как обсуждалось в Silenced user can circumvent it entering anonymous mode - #12 by pangbo.
Решение
Я сам не эксперт в Ruby, но, поскольку проблема возникает на страницах API JSON, содержащих пользователей, которые не были активны с момента внесения изменений в v3.5.2, предполагаю, что отсутствует миграция базы данных, обрабатывающая некоторый крайний случай в рамках этого изменения.