Cosa causerebbe la mancata spedizione di alcuni post in modalità mailing list

Su una versione self-hosted corrente di discourse, ho argomenti in cui i post non vengono inviati ad alcuni utenti che hanno scelto di ricevere tutti i post via email in modalità mailing list.

Ho controllato i miei log di posta elettronica, ci sono sicuramente email inviate per i post in questo argomento ad alcuni utenti ma non ad altri che hanno anche scelto di ricevere email di tutti i post; uno dei miei account utente di test le riceve, ma un altro account utente di test no.

Ho provato a pubblicare sull’argomento più volte, e lo ha fatto anche almeno un’altra persona.

Non vedo alcuna impostazione del sito o dell’utente che possa causare questo, cosa mi sfugge?

Questi sono i post:

 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)

Queste sono le email inviate all’utente 703 (dalla tabella 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)

Queste sono tutte le email inviate per quei post:

 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)

L’ID utente 5 non è stato aggiunto all’elenco degli utenti copiati fino a quando non ho notato il problema su un altro argomento.

Questo sembra accadere su quasi la metà degli argomenti/post effettuati oggi. Questo sistema è andato online ieri, ma non ho visto nulla di simile durante i test.

Ho provato a impostare il numero massimo di email per utente al giorno su 0 per disabilitarlo, anche se in precedenza era a 100, che non sembra avrebbe raggiunto.

Aggiornamento: Non ha risolto il problema.

Non dovrebbe registrare da qualche parte il motivo per cui non invia l’email?

Sì: Impostazioni → Registri → Registri errori

Non c’è nulla nel registro degli errori a riguardo, né nulla vicino ai timestamp di quando le email mancanti avrebbero dovuto essere inviate.

Potrebbe trattarsi di un problema di Sidekiq? Ho molti messaggi su Sidekiq che consuma troppa memoria oggi.

Sembra che l’argomento venga confuso, una volta che c’è un post in quell’argomento che non viene inviato a questo utente, non vengono più inviati post futuri a quell’utente.

Sembra che topic_user.notification_level sia stato impostato su 0 (silenzioso?) per questo utente/argomento e non sembra esserci un modo per reimpostarlo su 1 dalle schermate di amministrazione, anche se probabilmente può essere fatto con rails. Ma come è stato cambiato?

Potrebbe essere stato il risultato di qualcuno che ha fatto clic sul link “annulla iscrizione” nell’e-mail, prima che scoprissi come sopprimerlo dalle e-mail inviate al server di inoltro? Se è così, non dovrebbe esserci un modo per annullare tale operazione?

La rimozione di tutti i tag nei due argomenti interessati o l’impostazione delle notifiche su qualcosa di diverso da “silenzioso” non sembra aver modificato topic_users.

Non viene visualizzato nulla negli argomenti silenziati nel profilo di questo utente.

Non sono sicuro di voler modificare in blocco tutti gli argomenti, ecco il conteggio dei valori di notification_level in topic_users:

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

Evvai, ho finalmente trovato dove disattivare l’audio di quegli argomenti per quell’utente!

Ho dovuto notare che c’era un tag ‘show’ sopra la casella disattivata nella colonna di sinistra della pagina di tracciamento per questo utente.

Non avranno messo a tacere quell’argomento di proposito e non vogliono ricevere notifiche/email al riguardo?

No, perché in sostanza era un account dello staff che ho creato allo scopo espresso di inoltrare post da un gruppo a una mailing list esterna legacy e, per quanto ne so, non ho mai intenzionalmente messo in muto quell’utente su quell’argomento.

Ma almeno ho imparato molto sulla struttura dei dati, ho letto del codice Ruby e ho imparato alcune cose sull’essere un amministratore. :wink:

Penso che questo argomento possa essere chiuso ora.