bug: some campaign emails aren't saved correctly, others are

Since about 6 months we’re seeing a new issue with campaign emails that I can’t figure out.

For most – but not all – campaigns, no email record is saved in table “emails” for campaign marketing emails that have been successfully sent out.
This means that the links to these Emails (in Campaign Log and Campaign Status) don’t work.
Instead of Showing the Marketing Email name and Email subject line, the link text looks something like:

And when clicked it leads to an Email record that doesn’t exist, so I get an error when clicking the link.

The respective ID that’s it’s looking for but can’t find (d0296518-f4b6-a163-7c27-5b31e5f53201) can be found in many other places in the database:

  • email_marketing.id (The email template record linked to here exists)
  • emails_beans.email_id
  • emails_email_addr_rel.email_id
  • emails_text.id
  • tracker.item_id
  • campaign_log.marketing_id

What’s missing is a record in the “emails” table.

I couldn’t find anything in the SuiteCRM log file.

We’re running SuiteCRM version 7.4.1.

Any ideas on how to debug or what might be causing this?

I don’t know, and for 7.4.1 it’s really hard to help…

I wonder if the fact that this only happens sometimes, not always, could be a sign of things like database timeouts. Maybe your database is growing, and some writes are failing. Maybe try some database maintenance.


and some health checks. This is just an idea, I’m not sure if it’s any good…

pretty sure it ain’t database timeouts. Our CRM is running faster now than it has for years. And some of these newsletter campaigns I’m talking 60 records being sent out…

But maybe I can monitor database activitiy while we’re sending out a mail next time…


There is an option to “log slow queries”, you can turn it on to get DEBUG messages in the log about any queries that run slow.

Another manual hack I do sometimes for performance stuff is to have a separate SSH window (I use putty) running

tail -f suitecrm.log

And actually see the lines rolling by as some action executes. As soon as I see a noticeable delay of a couple of seconds, I press “enter” a few times to leave blank lines. Then when the operation is over I grab the entire scrollback history (sometimes thousands of lines), put it in Notepad++ and figure out what it was doing when it got delayed.