게시글에 스태프 색상을 추가하면 토픽 알림 이메일이 전송되지 않습니다

현재 Discourse 3.5.0.beta7-dev (7562bc2b15)를 실행 중입니다.

특정 조건에서 게시글의 게시 일정을 잡을 때 토픽 알림 이메일이 전송되지 않습니다.

매우 이례적인 버그를 발견했으며, 최신 버전을 실행하고 있음에도 불구하고 최근 몇 달 동안 몇 번이나 발생했으므로 이 문제가 이미 상당한 기간 동안 존재해 온 것으로 보입니다.

#Announcements라는 카테고리가 있으며, 모든 사용자는 기본적으로 Watching First Post(첫 번째 게시글 관찰) 설정이 되어 있습니다.

이 문제를 재현하기 위한 우리의 단계:

  1. 숨겨진 스태프 전용 카테고리에서 새 토픽을 작성합니다.
  2. 새 토픽의 첫 번째 게시글에 스태프 색상(staff colour)을 적용합니다.
  3. 토픽 타이머를 설정하고, 게시 일정(Schedule Publishing)을 선택한 후 카테고리를 #Announcements로 설정하고 시간/날짜를 지정합니다.

정상적으로 일어나야 할 일:

  • 토픽이 #staff에서 #Announcements로 이동합니다.
  • 수만 통의 이메일이 전송됩니다.
  • 각 사용자에게 알림이 수신됩니다.

실제로 일어나는 일:

  • 토픽이 #staff에서 #Announcements로 이동합니다.
  • 이메일이 전송되지 않습니다
  • 각 사용자에게 알림은 수신됩니다.

게시 예정 시간이 도래하기를 기다리는 동안, 다음 두 작업이 대기 중임을 확인할 수 있었습니다(게시글 ID로 필터링됨):

10분 후, 토픽이 #Announcements에 게시되었을 때 해당 작업들은 사라졌습니다:

알림은 전송되었으며, 테스트 계정이 받은 내용은 다음과 같습니다:

그러나 여전히 이메일은 전송되지 않았습니다.

보통 이 시점에는 Scheduled에 수만 통의 이메일이 큐에 쌓이기 시작하고 점차 Enqueued로 이동하는 모습을 볼 수 있지만, 아무 일도 일어나지 않으며 이메일이 0통 전송됩니다.

Discourse 에러 로그에도 아무 내용이 없습니다.

게시글에는 투표(poll)가 포함되어 있었지만, 게시글 콘텐츠는 무관할 것으로 추정됩니다. 다만 투표도 관련이 있을 수 있으니 언급해 둡니다.

오늘 실패한 테스트는 도움이 된다면 여기서 찾을 수 있습니다: https://greyarro.ws/t/do-you-own-a-drone-thats-not-on-the-what-do-you-fly-list/98146.json

이 실패의 핵심 원인은 게시 예정인 토픽의 첫 번째 게시글에 스태프 색상을 추가하는 동작인 것으로 매우 보입니다.

다른 모든 일정 게시글은 이메일이 정상적으로 전송되지만, 스태프 색상을 추가하면 매번 실패합니다.

3개의 좋아요

재현할 수 있습니다. :raised_hand:

기본적인 단계별 절차는 다음과 같습니다:

  • 이메일 시간 창을 1분으로 조정합니다 (선택 사항이지만 처리를 빠르게 합니다)
  • 관리자 권한으로 테스트 사용자에게 테스트 카테고리의 첫 번째 게시글을 '감시 중(Watching First Post)'으로 설정합니다
  • 관리자 권한으로 #staff 카테고리에서 주제를 생성합니다
  • 게시글 도구를 사용하여 첫 번째(유일한) 게시글에 Staff Colour를 추가합니다
  • 주제 타이머를 설정하여 1분 후 테스트 카테고리에 게시를 예약합니다
  • 아이스크림에 대해 잠시 몽상을 하며 주제가 게시되고 이메일 창을 커버하기 위해 1분이 더 지나기를 기다립니다
  • 관리자 권한으로 테스트 사용자의 알림을 확인한 후, 사이트의 이메일 로그를 확인합니다

기대 결과: 테스트 사용자가 예약된 주제에 대한 알림을 받고, 동반 이메일 알림이 전송되었음을 나타내는 이메일 로그가 존재합니다

실제 결과: 테스트 사용자가 사이트 내 알림은 받지만 이메일은 전송되지 않습니다

(제어군으로 Staff colour 단계를 생략하고도 이 테스트를 수행했습니다. 모든 것이 정상적으로 작동했습니다. 사이트 내 알림과 이메일 알림 모두 전송되었습니다)

Staff colour가 post_type을 ‘2’(moderator_action)로 조정하고, 이것이 코드에서 처리되지 않는 것과 관련이 있을까요?

4개의 좋아요

재현 단계를 하나 빠뜨렸다는 걸 알았어 :rofl:

흥미로운 관찰입니다:

2개의 좋아요

네, 게시물을 스태프 게시물로 전환하면 Post.types[:moderator_action]가 됩니다. 여기서는 알림을 보내야 한다고 생각하는데, 누락된 부분이 실수인 것 같습니다.

팀이 검토할 수 있도록 pri-medium(향후 4주 내) 우선순위를 설정했습니다.

2개의 좋아요

참고로, 사용자에게 답글을 남기고 해당 답글에 스태프 색상을 설정하면, 해당 사용자에게 이메일 알림이 보이지 않는 경우도 있나요?

늦어도 나쁘지 않죠? :sweat_smile:

2개의 좋아요

물론이죠, 친구 사이인데 몇 주쯤이 무슨 문제인가요 :slight_smile:

이 수정으로 해당 시나리오가 해결되는지 확인해도 될까요?

이 주제는 2일 후 자동으로 닫혔습니다. 더 이상 답변을 할 수 없습니다.