message: "Too Many Requests", "discourse_topic_id"

오늘 WP-disourse를 최신 버전으로 업그레이드했는데, 처음으로 이런 에러들이 보이기 시작했습니다:

2025-05-29 13:22:11] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3886","wp_post_id":3151,"http_code":429} 
[2025-05-29 13:22:11] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3888","wp_post_id":3026,"http_code":429} 
[2025-05-29 13:22:11] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3889","wp_post_id":2374,"http_code":429} 
[2025-05-29 13:22:12] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3890","wp_post_id":2288,"http_code":429} 
[2025-05-29 13:22:12] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3891","wp_post_id":2083,"http_code":429} 
[2025-05-29 13:22:13] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3892","wp_post_id":2031,"http_code":429} 
[2025-05-29 13:22:14] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3894","wp_post_id":1495,"http_code":429} 
[2025-05-29 13:22:15] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3895","wp_post_id":975,"http_code":429} 
[2025-05-29 13:22:15] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3896","wp_post_id":841,"http_code":429} 
[2025-05-29 13:22:15] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"3897","wp_post_id":783,"http_code":429} 
[2025-05-29 13:22:15] comment.ERROR: sync_comments.response_error {"message":"Too Many Requests","discourse_topic_id":"4023","wp_post_id":730,"http_code":429} 

이것을 일으키는 원인에 대해 어떤 생각이 있으신가요?

가장 그럴듯한 설명은 오류 메시지에 명시된 내용입니다. 귀하의 사이트가 Discourse의 댓글 엔드포인트에 너무 많은 요청을 보내고 있습니다.

  • Discourse 댓글이 표시되는 페이지가 자주 새로고단장되고 있나요?
  • 사이트가 평소보다 높은 부하를 겪고 있나요?
  • 로그 메시지가 계속되고 있나요?
  • WP Discourse의 댓글 캐싱 기능을 사용 중인가요? 사용하지 않는다면, 이 문제가 해결되는 데 도움이 될 가능성이 높습니다. 설정에서 댓글 캐싱을 활성화할 수 있습니다.

이전 버전인 2.5.6으로 롤백하여 다른 변경 사항 없이 문제를 완전히 해결했습니다:

image

2.5.7 버전에서는 해당 페이지에서 매번 '저장’을 클릭하지 않는 한 아래 스크린샷처럼 ‘연결 끊김’ 상태로 표시됩니다. 설령 저장 버튼을 클릭하더라도 다른 탭으로 이동했다가 다시 플러그인 메인 페이지로 돌아오면 다시 '연결 끊김’으로 표시됩니다. 2.5.6으로 되돌린 후에는 해당 페이지/탭을 떠나든 말든 항상 "Discourse에 연결되어 있습니다!"라고 표시됩니다.

이것이 좀 이상했지만, 아마도 이전에도 그랬던 것 같고 제가 몰랐던 것 같아서 이전 상태의 스크린샷은 없습니다. 그냥 무시했거든요. 2.5.6으로 되돌린 후에야 이것이 정상적인 현상이 아니었으며 2.5.7 업그레이드 후에만 발생한 문제임을 깨달았습니다.

*** Discourse 댓글이 표시되는 페이지가 많이 새로고침되고 있나요?**
(아니요, 플러그인 업그레이드를 위해 클릭한 것 외에는 아무것도 변경되지 않았습니다)

*** 사이트가 평소보다 부하가 더 큰가요?**
(아니요, 모든 목요일과 동일한 트래픽입니다)

*** 로그 메시지가 계속되고 있나요?**
(네, 계속되고 있어서 2.5.6으로 되돌렸습니다. 시간이 지나면 해결될 것 같았지만, 로그가 예상 길이로 약 2페이지 분량까지 증가했습니다.)

*** WP Discourse 댓글 캐싱 기능을 사용 중이신가요? 아니라면 여기서는 도움이 될 가능성이 높습니다. 설정에서 댓글 캐싱을 활성화할 수 있습니다.**
(아니요, 필요했던 적이 없습니다. 약 1년 동안 WP-Discourse 설정 중 어떤 것도 변경되지 않았습니다. 제가 수행한 유일한 유지보수 작업은 새 버전으로 업데이트하는 것이었습니다.)

야간 WordPress 백업 이후 새로운 콘텐츠를 게시하지 않았고 다른 플러그인도 업데이트하지 않았으므로, 롤백은 수정 여부를 빠르게 확인하는 방법이었기 때문에 선택했습니다.

자세한 답변 감사합니다. 정말 감사드립니다!

전체 사이트를 롤백하신 것 같습니다. 맞나요? WP Discourse 플러그인만 변경된 것이 확실합니까? 그렇다면 그렇게 확신하는 근거는 무엇인가요? 업그레이드는 어떻게 수행되었나요? 전체 사이트를 롤백하셨다면 다른 모든 변경 사항도 함께 되돌려진 것입니다. 또한, 블록 사용이 가능한 테마를 사용 중이신가요? 그리고 WP Discourse Comments 블록을 사용 중이신가요?

제가 생각할 수 있는 것은 functions.php 파일의 이 블록뿐입니다.

add_filter( 'discourse_comment_html', function () {
	ob_start(); ?>
	<li class="comment depth-1">
		<article class="comment-body">
			<header class="comment-header">
				<img
					src="{avatar_url}"
					alt="{username} avatar"
					class="comment-avatar"
					width="40" height="40" loading="lazy"
				/>
				<div class="comment-meta">
					<b class="fn">
						<a href="{topic_url}" rel="external">{username}</a>
					</b>
					<time datetime="{comment_created_at}">
						{comment_created_at}
					</time>
				</div>
			</header>

			<div class="comment-content">
				{comment_body}
				</div>
		</article>
	</li>
<?php
	return ob_get_clean();
} );

이러한 동작을 일으킬 수는 없을 것입니다.

2.5.7 버전을 여러 인스턴스에서 재테스트해 보았지만, 이 동작을 재현할 수 없었습니다. 게다가 해당 버전의 변경 사항이 이런 문제를 일으킬 수 있는 이유를 이해하기 어렵습니다.

방금 2.5.8 버전을 출시했습니다. 플러그인만(다른 것은 변경하지 않고) 업데이트하여 문제가 재현되는지 확인해 주시겠습니까?

네, 이번 주말에 할게요.

어제 모든 것을 업그레이드했는데, 지금까지는 문제가 없습니다.