main_user_record의 silenced_till 문제로 인해 API 호출 실패

설명
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?’

```

시스템 로그에 따르면, 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 - GitHub 에서 도입되었습니다.

해결책
저는 Ruby 전문가가 아니지만, v3.5.2 변경 사항 이후로 활동하지 않은 사용자를 포함하는 API JSON 페이지에서 발생하는 것으로 보아, 이 변경 사항과 관련된 일부 경계 조건을 처리하는 데이터베이스 마이그레이션이 누락된 것으로 추정됩니다.

최신 버전의 Discourse를 사용 중이신가요? 말씀하신 문제는 몇 달 전에 수정되었을 것으로 생각됩니다.

여전히 v3.5.2를 사용 중이라면, 해당 버전이 상당히 오래되었고 언급했듯이 새 버전에서 문제가 수정되었을 수 있으므로 이것이 문제의 원인입니다. 더 최신 버전으로 사이트를 업데이트한 후 다시 시도해 보세요.

@zogstrip: 네, 저희는 2026.1.3(2026년 3월 31일 출시된 최신 ESR)를 사용하고 있으며, 해당 수정 사항은 2026.2.0에 포함되었지만(백포트되지 않았으므로) 현재 ESR 버전에는 반영되지 않은 것으로 보입니다.