# 특정 модератор의 리뷰 섹션에서 500 서버 오류 발생

**URL:** <https://meta.discourse.org/t/review-section-results-in-500-server-error-for-a-specific-moderator/414526>\
**Category:** Bug\
**Tags:** moderation\
**Created:** [10월 12, 2026, 3:21오후 UTC](https://meta.discourse.org/t/review-section-results-in-500-server-error-for-a-specific-moderator/414526 "2026-10-12T15:21:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mentalstring](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mentalstring/32/168934_2.png) [@mentalstring](https://meta.discourse.org/u/mentalstring)\
**Post date:** [10월 12, 2026, 3:21오후 UTC](https://meta.discourse.org/t/review-section-results-in-500-server-error-for-a-specific-moderator/414526/1 "2026-10-12T15:21:07Z")

</div>

우리 사이트의 한 모더레이터가 항상 Review 섹션에서 서버 오류 메시지를 받게 됩니다. 이는 생성된 쿼리 중 하나가 일반적인 30초 타임아웃보다 훨씬 오래 걸리기 때문인 것으로 보입니다.

해당 동작은 다음과 같습니다: `/review`로 이동한 후 `Status` 드롭다운을 `Everything`으로 변경하는 것입니다(다른 옵션을 선택해도 동일한 문제가 발생합니다). 스태프의 다른 모든 사용자에게는 동일한 동작이 즉시 처리되는 것처럼 보입니다. 이 모더레이터는 우리 사이트에서 가장 활동적인 사용자이며, 이것이 문제를 유발하는 것으로 보입니다.

> **에러 메시지**
>
> > ☹  
> > 서버 오류  
> > /review?priority=low&status=all&sort\_order=created\_at&additional\_filters=%7B%7D 로드를 시도하는 중  
> > 에러 코드: 500 오류

생성된 쿼리의 형태:

> **문제가 되는 쿼리**
>
> ```plaintext
> SELECT COUNT(*) FROM "reviewables" LEFT OUTER JOIN "categories" ON "categories"."id" = "reviewables"."category_id" LEFT OUTER JOIN "category_moderation_groups" ON "category_moderation_groups"."category_id" = "categories"."id" WHERE ((reviewables.reviewable_by_moderator AND TRUE) OR (category_moderation_groups.group_id IN (2, 3, 10, 11, 12, 13, 14, 41, 42, 43, 45))) AND (reviewables.category_id IS NULL OR reviewables.category_id IN (1, 46, 120, 89, 12, 8, 80, 27, 128, 39, 20, 5, 121, 117, 6, 24, 18, 93, 94, 54, 31, 15, 83, 34, 81, 33, 22, 60, 57, 40, 119, 129, 63, 64, 38, 21, 106, 17, 122, 74, 77, 123, 127, 7, 9, 10, 11, 13, 14, 19, 23, 25, 26, 28, 29, 30, 32, 35, 37, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 53, 55, 56, 58, 59, 61, 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 78, 79, 82, 84, 85, 86, 87, 88, 90, 91, 92, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 124, 125, 126, 127, 130)) AND (NOT EXISTS (
> SELECT 1
> FROM topics private_message
> WHERE private_message.id = reviewables.topic_id
> AND private_message.archetype = 'private_message'
> AND private_message.id NOT IN (SELECT "topics"."id" FROM "topics" WHERE ("topics"."archetype" = 'private_message' AND (topics.id IN (SELECT topic_id
> FROM topic_allowed_users
> WHERE user_id = 12345
> )
> OR topics.id IN (SELECT tg.topic_id
> FROM topic_allowed_groups tg
> JOIN group_users gu ON gu.user_id = 12345 AND gu.group_id = tg.group_id
> )) OR topics.subtype = 'moderator_warning'
> OR topics.id IN (SELECT "reviewables"."topic_id" FROM "reviewables" WHERE "reviewables"."type" = 'ReviewableFlaggedPost' AND "reviewables"."status" = 0 AND (score >= 0.0))
> ))
> )
> ) AND (NOT EXISTS (
> SELECT 1 FROM posts reviewable_target
> WHERE reviewables.target_type = 'Post'
> AND reviewable_target.id = reviewables.target_id
> AND NOT EXISTS (SELECT "posts"."id" FROM "posts" WHERE (posts.post_type IN (1, 2, 3, 4)) AND "posts"."topic_id" IN (SELECT "topics"."id" FROM "topics" LEFT OUTER JOIN "shared_drafts" ON "shared_drafts"."topic_id" = "topics"."id" WHERE "shared_drafts"."id" IS NULL AND ("topics"."archetype" != 'private_message' AND (topics.category_id IS NULL OR topics.category_id IN (SELECT id FROM categories WHERE NOT read_restricted OR id IN (7, 9, 10, 11, 13, 14, 19, 23, 25, 26, 28, 29, 30, 32, 35, 37, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 53, 55, 56, 58, 59, 61, 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 78, 79, 82, 84, 85, 86, 87, 88, 90, 91, 92, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 124, 125, 126, 127, 130))) OR "topics"."archetype" = 'private_message' AND "topics"."archetype" = 'private_message' AND ((topics.id IN (SELECT topic_id
> FROM topic_allowed_users
> WHERE user_id = 12345
> )
> OR topics.id IN (SELECT tg.topic_id
> FROM topic_allowed_groups tg
> JOIN group_users gu ON gu.user_id = 12345 AND gu.group_id = tg.group_id
> )) OR topics.subtype = 'moderator_warning'
> OR topics.id IN (SELECT "reviewables"."topic_id" FROM "reviewables" WHERE "reviewables"."type" = 'ReviewableFlaggedPost' AND "reviewables"."status" = 0 AND (score >= 0.0))
> ))) AND (posts.id = reviewable_target.id))
> )
> ) AND "reviewables"."type" IN ('ReviewableFlaggedPost', 'ReviewableQueuedPost', 'ReviewableUser', 'ReviewablePost');
> 
> count
> -------
> 15147
> (1 row)
> 
> Time: 78545.972 ms (01:18.546)
> 
> ```

user\_id를 제 것(관리자)으로 변경해도 유의미하게 빨라지지 않는 것 같으며, 저는 `/review`에서 동일한 동작을 문제없이 수행할 수 있으므로 코드 경로가 동일하지 않다고 추정합니다.

이는 Discourse: [v2026.7.3 +24](https://github.com/discourse/discourse%20version%204243fa0848d2d4be8c61a15ea2ee66dc32b7c75d) 환경에서 발생하고 있습니다.

---

<div class="post-metadata">

**Author:** ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)\
**Post date:** [10월 12, 2026, 4:40오후 UTC](https://meta.discourse.org/t/review-section-results-in-500-server-error-for-a-specific-moderator/414526/2 "2026-10-12T16:40:22Z")

</div>

/logs에 관련 내용이 있을까요? 정보가 부족해서 \_진단\_하기가 좀 어렵네요 🧐
