# API 调用因 main\_user\_record 的 silenced\_till 字段问题而失败

**URL:** <https://meta.discourse.org/t/api-calls-fail-due-issue-with-main-user-record-silenced-till/402752>\
**Category:** Support\
**Tags:** rest-api\
**Created:** [2026年五月12日 08:56 UTC](https://meta.discourse.org/t/api-calls-fail-due-issue-with-main-user-record-silenced-till/402752 "2026-05-12T08:56:32Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![torgeirl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/torgeirl/32/519857_2.png) [@torgeirl](https://meta.discourse.org/u/torgeirl)\
**Post date:** [2026年五月12日 08:56 UTC](https://meta.discourse.org/t/api-calls-fail-due-issue-with-main-user-record-silenced-till/402752/1 "2026-05-12T08:56:33Z")

</div>

**描述**  
在使用 API 获取活跃用户时，`/admin/users/list/active.json` 的某些页面返回 HTTP 500 错误。

**临时解决方案**  
如果跳过有问题的页面，其他页面可以正常获取。

**错误信息**  
导致 HTTP 500 的服务器错误：

```plaintext
NoMethodError: undefined method '[]' for nil (NoMethodError)

```

main\_user\_record[:silenced\_till]  
^^^^^^^^^^^^^^^^

```plaintext

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 后开始出现这些错误。相关代码行是在 [FIX: Delegate silenced\_till from anonymous user to main user account · Pull Request #32416 · discourse/discourse](https://github.com/discourse/discourse/pull/32416) 中引入的，具体讨论见 [https://meta.discourse.org/t/silenced-user-can-circumvent-it-entering-anonymous-mode/320052/12。](https://meta.discourse.org/t/silenced-user-can-circumvent-it-entering-anonymous-mode/320052/12%E3%80%82)

**解决方案**  
我本人并非 Ruby 专家，但根据我的观察，该问题出现在包含自 v3.5.2 变更以来未活跃用户的 API JSON 页面中。我推测，此次变更可能遗漏了处理某些边界情况的数据库迁移。

---

_[View the full topic](https://meta.discourse.org/t/api-calls-fail-due-issue-with-main-user-record-silenced-till/402752)._
