I have started experiencing some problems with bulk mailing, for at least 3 mailings the mailing report shows successful deliveries greater than the intended recipients. I have checked the detail report and noticed that some contacts actually show successful deliveries 4 times, while others are double or triple - see attachedenter image description here

In some cases, the contact email is marked as on hold but report shows double or triple successful deliveries.

My Mailer Batch Limit is 750, cron used to run every 15 minutes (*/15 * * * * wget -O - -q -t 1 'http://mysite.org/sites/all/modules/civicrm/bin/cron.php?name=username&pass=password&key=site-key'), i have changed it to every hour but still get more deliveries. Mailer Throttle Time, Mailer Job Size and Mailer CRON job limit are set to 0. I have had this settings for long and didn't experience this problem until recently.

I have also taken a look at this post here but this doesn't seem to be my case.

What should i be looking at? Civi 4.6.10, Drupal 7

  • I'm adding my experience for the sake of giving you another data point. I am running CiviCRM in Joomla with SparkPost. My bulk mailings were working as expected when I was in CiviCRM 4.6.x. Since then, I upgraded to 4.7.14 in December and also placed my website behind a firewall. Now I'm experiencing the error above. Total # of emails supposed to go out: 3305 cron runs every 30 mins Mailer batch limit: 3500 mailer cron job limit: 0 I've run a couple of small mailings to about 300 people, and those delivered successfully to everyone, with the settings above, without duplication. But when I'm se Jan 19, 2017 at 15:46

4 Answers 4


@Kboy - that sounds like it could be a bug; General receipe for this sort of scenario is to update to latest 4.6.x - if this then still persists let us know and file a bug report on JIRA. 4.6.x latest is where you want to be for many other reasons since 4.6.10 - so time well spent. Please keep us posted!

  • the mailing report has been normal for my last two bulk mailings quite strange because i didn't change anything.
    – Kboy
    May 11, 2016 at 5:35
  • Re: a bug. We're still working on reproducing it, but it appears that it's possible if scheduled jobs is still running when cron runs again (as in, it's taking more than 15 minutes for the mailing to go out, so it's still processing at the time of the next cron run), then BOTH cron instances will process the messages in queue, resulting in duplicate deliveries. Dec 17, 2016 at 15:59
  • i don't know if this can be a Mailer batch limit issue, i sent out 6k emails, my Mailer batch limit is 900, but my mailing report shows that mailing was completed in 3hrs 22mins. My cron runs at the start of every hour, i can't see anything in my logs, I'm just thinking aloud and my delivery report is back to 130%
    – Kboy
    Jan 28, 2017 at 9:15

I've got a theory about this, based on my experience with Clickatell.

Members of 'Team Clicka' will occasionally receive inbound text messages twice, and very rarely three times. This is because Clickatell would sometimes tell us about the message, not get a response saying we heard it, and then tell us again.

I bet that something similar is happening with clickthroughs. As you're not throttling, it makes sense that your server would be too busy to send out all its "yes, I heard you" messages, so perhaps they're being resent?

Also, has anyone double checked to make sure that clicking the same message multiple times isn't being counted multiple times? Seems unlikely but it could happen.

  • this settings have always been like this and higher percentage of successful deliveries only started about a month ago.
    – Kboy
    Mar 12, 2016 at 7:16

We have a similar problem and so where we could find was related with ACLs. Users who sent mailings and had ACLs defined caused this unexpected behaviour. We experimented it with CiviCRM versions 4.7.11 and 4.7.12.

  • that wasn't the case with our installation, as the user has always been the same. Between we have had normal reports for quite a while now but last weekend i had 137% successful deliveries, nothing has changed, i'm still scratching my head looking for the problem
    – Kboy
    Dec 7, 2016 at 23:00
  • Recipients are receiving 3, 4, ? times the mail? In our case was so. Dec 7, 2016 at 23:16
  • Yes, in my last mailing, mailing report shows that some recipients have received 2,3,4 times.
    – Kboy
    Dec 8, 2016 at 9:18

I've been able to reproduce the duplicate deliveries that push the delivery rate over 100% by having 2 cron jobs processing a CiviMail job at the same time.

@scardinius has traced this to some code and we've opened ticket https://issues.civicrm.org/jira/browse/CRM-19809 for the bug.

There's a conversation on MatterMost about this bug. https://chat.civicrm.org/civicrm/pl/168t4i9ac3nu7rwcrpi8dcfnca

In any case, it would be prudent to prevent 2 cron jobs from running at the same time, either by adjusting the Mailer Batch Limit setting under Administer - CiviMail - Mailer Settings to a value less than the number of messages that can be delivered in a single cron run, or by using a lockfile to prevent the cron job from invoking the Scheduled Jobs while another is running.

if [ ! -f $HOME/civicrm-cron.lock ]
  touch $HOME/civicrm-cron.lock
  /usr/bin/wp --user="civicrm_cron" \
    --url=http://www.yoursite.org \
    --path=/home/yoursite/public_html \
    civicrm api job.execute auth=0
  rm -f $HOME/civicrm-cron.lock

Per Xavier's comment, your environment may depend on being able to have 2 instances of the Scheduled Jobs running at the same time, as in the case of doing A/B testing.

  • i have a mailer batch limit but that doesn't seem to prevent duplicate deliveries
    – Kboy
    Dec 29, 2016 at 12:27
  • if you want to have working AB tests (ie. that are sent at the same time) you need two cronjobs. Also, we did manage to get faster sending with having two cronjobs
    – Xavier
    Dec 29, 2016 at 14:45
  • Kboy: How often are you executing scheduled jobs via cron? Is it possible that you've got a second one executing before the previous one finishes sending mail? I believe the query SELECT * FROM civicrm_mailing_event_delivered GROUP BY event_queue_id HAVING COUNT(event_queue_id)>1 should return no results UNLESS you're hitting this bug. Dec 29, 2016 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.