¿Qué causaría que algunas publicaciones no se envíen en modo de lista de correo?

En una versión autohospedada actual de Discourse, tengo temas donde las publicaciones no se envían a algunos de los usuarios que han optado por recibir todas las publicaciones por correo electrónico en modo lista de distribución.

He revisado mis registros de correo electrónico, definitivamente se están enviando correos electrónicos para las publicaciones en este tema a algunos usuarios, pero no a otros que también han optado por recibir correos electrónicos de todas las publicaciones; una de mis cuentas de usuario de prueba las está recibiendo, pero otra cuenta de usuario de prueba no.

He intentado publicar en el tema varias veces, y también lo ha hecho al menos otra persona.

No veo ninguna configuración del sitio o del usuario que pueda estar causando esto, ¿qué me estoy perdiendo?

Estas son las publicaciones:

  id   | user_id |          timezone
--------+---------+----------------------------
 119197 |     586 | 2023-04-03 11:05:41
 119198 |       2 | 2023-04-03 11:12:03.207053
 119215 |       2 | 2023-04-03 15:42:45.195223
 119216 |       2 | 2023-04-03 16:18:22.664227
 119218 |     508 | 2023-04-03 16:55:42.167977
 119219 |       2 | 2023-04-03 16:56:00.140777
 119222 |       2 | 2023-04-03 18:11:33.953314
(7 rows)

Estos son los correos electrónicos enviados al usuario 703 (de la tabla email_logs)

 id  | post_id |  email_type  |          timezone          |      smtp_transaction_response
-----+---------+--------------+----------------------------+--------------------------------------
 242 |  119197 | mailing_list | 2023-04-03 11:18:55.832126 | 250 2.0.0 Ok: queued as C95C443350B8
 243 |  119198 | mailing_list | 2023-04-03 11:22:04.731579 | 250 2.0.0 Ok: queued as B0E2943350B8
(2 rows)

Estos son todos los correos electrónicos enviados para esas publicaciones:

 id  | post_id |  email_type  | user_id |          timezone          |      smtp_transaction_response
-----+---------+--------------+---------+----------------------------+--------------------------------------
 242 |  119197 | mailing_list |     703 | 2023-04-03 11:18:55.832126 | 250 2.0.0 Ok: queued as C95C443350B8
 243 |  119198 | mailing_list |     703 | 2023-04-03 11:22:04.731579 | 250 2.0.0 Ok: queued as B0E2943350B8
 276 |  119215 | mailing_list |       5 | 2023-04-03 15:52:47.834189 | 250 2.0.0 Ok: queued as B51B443350B8
 277 |  119216 | mailing_list |       5 | 2023-04-03 16:28:29.651872 | 250 2.0.0 Ok: queued as 8760743350B8
 281 |  119218 | mailing_list |       5 | 2023-04-03 17:05:43.582886 | 250 2.0.0 Ok: queued as 8209143350B8
 282 |  119219 | mailing_list |       5 | 2023-04-03 17:06:02.231359 | 250 2.0.0 Ok: queued as 201A243350B8
 287 |  119222 | user_replied |     508 | 2023-04-03 18:21:38.024441 | 250 2.0.0 Ok: queued as EDE47434362C
 288 |  119222 | mailing_list |       5 | 2023-04-03 18:21:38.074723 | 250 2.0.0 Ok: queued as 07474434362D
(8 rows)

El ID de usuario 5 no se agregó a la lista de usuarios copiados hasta que noté el problema en otro tema.

Esto parece estar sucediendo en casi la mitad de los temas/publicaciones realizadas hoy. Este sistema acaba de entrar en funcionamiento ayer, pero no vi nada parecido durante las pruebas.

Intenté establecer el número máximo de correos electrónicos por usuario por día a 0 para deshabilitarlo, aunque anteriormente estaba en 100, que no parece que hubiera alcanzado.

Actualización: Eso no lo solucionó.

¿No debería estar registrando en algún lugar la razón por la que no se envía el correo electrónico?

Sí: Configuración → Registros → Registros de errores

No hay nada en el registro de errores sobre esto, ni nada cerca de las marcas de tiempo de cuándo deberían haberse enviado los correos electrónicos que faltan.

¿Podría ser un problema de Sidekiq? Hoy tengo muchos mensajes sobre que Sidekiq consume demasiada memoria.

Parece que el tema se está confundiendo, una vez que hay una publicación en ese tema que no se envía a este usuario, tampoco se envían futuras publicaciones a ese usuario.

Parece que topic_user.notification_level se ha establecido en 0 (¿silenciado?) para este usuario/tema, y no parece haber una forma de volver a establecerlo en 1 desde las pantallas de administración, aunque probablemente se pueda hacer con rails. Pero, ¿cómo se cambió?

¿Podría haber sido el resultado de que alguien hiciera clic en el enlace ‘cancelar suscripción’ en el correo electrónico, antes de que descubriera cómo suprimirlo de los correos electrónicos que se envían al servidor de retransmisión? Si es así, ¿no debería haber una forma de deshacerlo?

Quitar todas las etiquetas en los dos temas afectados o establecer la notificación en algo que no sea silenciado no parece haber cambiado topic_users.

No aparece nada en los temas silenciados en el perfil de este usuario.

No estoy seguro de querer cambiar todos los temas en bloque, aquí está el recuento de los valores de notification_level en topic_users:

 notification_level | count
--------------------+--------
                  0 |      2
                  1 |    177
                  2 |     45
                  3 | 119818

¡Yay, finalmente encontré dónde silenciar esos temas para ese usuario!

Tuve que notar que había una etiqueta ‘show’ encima del cuadro silenciado en la columna izquierda de la página de seguimiento para este usuario.

¿No habrán silenciado ese tema a propósito y no quieren recibir notificaciones/correos electrónicos al respecto?

No, porque en esencia era una cuenta de personal que configuré con el propósito expreso de reenviar publicaciones de un grupo a una lista de correo externa heredada, y hasta donde sé, nunca silencié intencionalmente a ese usuario sobre ese tema.

Pero al menos aprendí mucho sobre la estructura de datos, leí algo de código Ruby y aprendí algunas cosas sobre ser un administrador. :wink:

Creo que este tema se puede cerrar ahora.