Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Campaign Finished before all emails Sent #1802

Open
malvibid opened this issue Mar 30, 2024 · 6 comments
Open

Campaign Finished before all emails Sent #1802

malvibid opened this issue Mar 30, 2024 · 6 comments
Assignees
Labels
question Further information is requested

Comments

@malvibid
Copy link

  • listmonk: v3.0.0
  • OS: Linux

I need to send a Newsletter to all 1,450 Subscribers in my Newsletter list. I started the campaign, but the campaign finished after sending only 578 / 1,450. Upon investigating I have found there is a 454 Throttling Failure.

image

Extract of Logs:

2024/03/30 07:05:32start processing campaign (March Newsletter)
2024/03/30 07:05:38error sending message in campaign March Newsletter: subscriber 243: 454 Throttling failure: Maximum sending rate exceeded.
2024/03/30 07:05:38error sending message in campaign March Newsletter: subscriber 268: 454 Throttling failure: Maximum sending rate exceeded.
2024/03/30 07:05:38error sending message in campaign March Newsletter: subscriber 269: 454 Throttling failure: Maximum sending rate exceeded.
2024/03/30 07:05:38error sending message in campaign  March Newsletter: subscriber 252: 454 Throttling failure: Maximum sending rate exceeded.
...
2024/03/30 07:05:55error sending message in campaign March Newsletter: subscriber 1447: 454 Throttling failure: Maximum sending rate exceeded.
2024/03/30 07:05:55campaign (March Newsletter) finished
2024/03/30 07:05:55error sending message 'Finished: March Newsletter': 454 Throttling failure: Maximum sending rate exceeded.

My performance settings were the default.

Concurrency: 10
Message Rate: 10
Batch Size: 10000
Maximum Error Threshold: 1000

I have now adjusted the settings as follows.

image

1.) Would these settings prevent the campaign from Finishing before all the emails are sent? And Pause the campaign and allow me to investigate incase there is an error?

2.) There's ~870 subscribers in this list that didn't receive the email. I want to create a second list to resend the emails to these subscribers only. But how do I retrieve this list? The logs only show me, what I assume is the Subscribers ID. I have extracted these ID's using Excel functions. How can I use these ID's to create a new list - Newsletter-2?

@malvibid malvibid added the question Further information is requested label Mar 30, 2024
@MaximilianKohler
Copy link
Contributor

Would these settings prevent the campaign from Finishing before all the emails are sent?

You have to find out from your SMTP provider. For example, Amazon SES starts you out at around 12 per second I think, and you can gradually ask them for increases.

2.) Yeah, I have that same problem. Some info in my comments here #1762

@malvibid
Copy link
Author

malvibid commented Apr 1, 2024

Thanks for clarifying. I resolved email throttling issues in Listmonk by adjusting the message rate to 12 messages per second and the sliding window limit to 720 messages per minute.

To identify subscribers who hadn't received the email, I followed these steps:

  1. Saved logs before restarting Listmonk, as restarts clear logs.
  2. Extracted missing subscriber IDs from the logs using Excel’s TEXTSPLIT function.
  3. Exported subscriber details from the Listmonk database to a CSV file:
    psql -U listmonk -d listmonk
    \copy (SELECT * FROM subscribers) TO '/path/to/your/subscribers.csv' WITH CSV HEADER;
    
    This was necessary because Listmonk's GUI doesn't support ID searches or include the database ID in exports.
  4. Used XLOOKUP in Excel to match the extracted IDs with subscriber details from the CSV.
  5. Imported the identified subscribers into a new List in Listmonk and resent a copy of the email campaign to them.

Enhancement Suggestion: The workaround was effective, but it's a roundabout way of managing newsletter lists and errors, leaving me with extra cleanup. It would greatly benefit users if Listmonk simplified this process within the app itself, by making it easier to identify undelivered emails to avoid potential spamming with duplicate messages.

In any case, thank you for building and open-sourcing such an amazing tool.

@malvibid malvibid closed this as completed Apr 1, 2024
@knadh
Copy link
Owner

knadh commented Apr 1, 2024

The workaround was effective, but it's a roundabout way of managing newsletter lists and errors, leaving me with extra cleanup. It would greatly benefit users if Listmonk simplified this process within the app itself, by making it easier to identify undelivered emails to avoid potential spamming with duplicate messages.

Hi @malvibid. You can setup bounce tracking to accurately account for and automatically disable problematic e-mails.

@malvibid
Copy link
Author

malvibid commented Apr 1, 2024

Thank you for you reply, @knadh. I have set up bounce processing, and have no known issues there. But what I meant was identifying undelivered emails if a campaign finishes before all subscribers of a list are sent an email.

In my case, only 578 / 1,450 subscribers were sent an email and the campaign Finished. So, 872 people never got the email. It'd useful to know who these 872 people were so that I can try to send them an email again. The logs give me the subscriber ID, but its not practical for me to check these one-by-one for 872 people, but it is really the only option available in the app at the moment.

Additionally, my original list is called Newsletter with 1450 subs, and I had to create a new List with these 872 people called - Newsletter-2. This makes list management slightly tricky. Ideally, I do not want to create a new list, but maybe have just a temporary sub-list/segment of the same list Newsletter that I can send the emails to.

@MaximilianKohler
Copy link
Contributor

Yeah, I don't think bounce tracking is related to this at all. And some of us aren't lucky enough to get subscriber IDs in the logs. #1762

Even with malvibid's helpful directions it would take me ages to figure out how to do all that.

It would be great to have something like https://sesdashboard.com/ integrated into listmonk.

@knadh
Copy link
Owner

knadh commented Apr 1, 2024

@malvibid I agree. In an ideal scenario, failed campaign e-mails have to be logged in a table separately and there has to be a way to retry/resend a campaign just to those IDs. I've thought about it from time to time (as an extension to segmentation/ephemeral lists) but haven't come across any easy-enough approaches. In the last version, the concurrent messaging core was completely re-written and that should make achieving this simpler, hopefully. I'll consider this for the next version.

Re-opening this issue for tracking.

@knadh knadh reopened this Apr 1, 2024
@knadh knadh self-assigned this Apr 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants