Site icon WP Htaccess Editor

How FluentSMTP’s Queue Backup Caused My Newsletter Sends to Stall and the Cron and Queue Tuning That Fixed It

Managing a reliable email newsletter is crucial for maintaining engagement and building relationships with subscribers. When deliverability or sending issues creep in, especially during a busy campaign, it can be frustrating and cause ripple effects across your business. One such setback occurred when FluentSMTP’s queue backup unexpectedly caused newsletter sends to stall — bringing our outreach to a standstill, and forcing a careful investigation and tuning of WordPress cron jobs and queue settings to restore performance.

TLDR (Too long, didn’t read)

The issue was caused by a backup in FluentSMTP’s email queue due to missed or delayed WordPress cron calls. This caused newsletters to hang indefinitely, frustrating both editors and audience. After identifying the bottleneck, tuning the cron job frequency and FluentSMTP’s queue process settings resolved the issue. We’ll walk through the entire scenario and provide practical steps to avoid or fix this if you’re affected as well.

Understanding the Problem: When the Queue Fails, Everything Stops

FluentSMTP is a popular WordPress plugin for handling SMTP email sends directly from your website. It provides integrations with external SMTP services like Amazon SES, SendGrid, and others, letting WordPress avoid PHP mail pitfalls. A major feature is the ability to queue and stagger sends to avoid overloading the mail server or hitting provider limits.

However, this queuing functionality is only as stable as the WordPress cron system that powers it. As it turns out, WordPress doesn’t use a traditional system cron scheduled through the server. Instead, wp-cron is triggered on site visits, which means if your site doesn’t receive traffic at the right times—or the cron becomes stuck—background jobs like FluentSMTP’s email queue can come to a halt.

The result? Newsletter emails started “sending” indefinitely. No bounces, no errors, no completion—just limbo. After digging into logs and watching queue behavior, it was clear the root issue was not with FluentSMTP’s core functionality, but with how the server was triggering and handling the email job scheduler.

Early Symptoms and Red Flags

There were several signs pointing to the problem before emails completely stalled. Identifying these sooner could prevent headaches:

What made things confusing is that no admin error messages appeared, and FluentSMTP’s interface showed everything as ‘working.’ It was only when diving into the site logs and FluentSMTP’s own logs that the backlog became obvious. The cron events weren’t firing on time—or sometimes at all.

Diagnosing the Cron System

WordPress’s behavior when it comes to scheduled tasks is often misunderstood. The wp-cron.php file runs “on demand”—only when a real user hits the site. If you have a low-traffic site (such as during overnight hours), email queues can go hours without processing. Conversely, if you have caching or proxies involved (like Cloudflare or server-level caching), they may prevent wp-cron.php from executing altogether.

To verify if your WordPress cron is working:

  1. Install the plugin WP Crontrol
  2. Go to Tools → Cron Events
  3. Check how many pending tasks are stacking up
  4. Look for any recurring FluentSMTP tasks such as fluentmail-send-email

If you see those tasks with triggers in the past and they don’t execute, cron isn’t functioning properly.

Fixing the Problem: Cron and Queue Tuning

Once the root issue had been identified—a failing or insufficient wp-cron instance—the goal became clear: offload cron to a real server process and optimize FluentSMTP’s queue behavior. Here’s what fixed everything:

1. Disabling WP-Cron

The first step was to stop relying on WordPress’s pseudo-cron system entirely. This was done by adding the following to the site’s wp-config.php file:

define('DISABLE_WP_CRON', true);

This stops the default behavior of running cron jobs only during site visits.

2. Setting Up a Real Cron Job

Next, a server-side cron job was created to run every minute:

* * * * * php /path/to/wordpress/wp-cron.php >/dev/null 2>&1

This ensured a reliable execution of all scheduled tasks, including FluentSMTP’s queue.

3. Tuning FluentSMTP’s Settings

After reliable execution was guaranteed, the queue size and batch send limit were reviewed. In the FluentSMTP settings:

This resulted in email batches being processed far more efficiently, without risking throttling errors from the SMTP provider.

Results: Back to Smooth Sending

After the combination of disabling wp-cron, enabling a system cron, and tuning the queue, emails cleared out rapidly. The remaining queue of over 8,000 messages sent within half an hour. Subsequent campaigns were delivered without delays, and monitoring logs showed consistent queue behavior.

Moreover, FluentSMTP’s queue logs now update in real time, letting administrators track which messages are sending, pending, or errored.

Lessons Learned & Best Practices

This experience uncovered some crucial lessons for anyone handling email newsletters through WordPress and FluentSMTP:

By taking a proactive stance toward queue management and task scheduling, FluentSMTP can be a powerful—and stable—email solution.

Frequently Asked Questions (FAQ)

Why did my FluentSMTP queue stop processing suddenly?
Most likely, WordPress cron jobs stopped firing due to low traffic, plugin conflicts, or caching. This causes email tasks to remain in the queue without processing.
Can FluentSMTP send emails without cron?
No. FluentSMTP relies on WordPress cron to trigger its queue emails. Without it running on a consistent schedule, queued emails will not be processed.
How do I monitor my FluentSMTP queue?
Within the FluentSMTP plugin, navigate to the Email Logs or Queue section. There you’ll see queued, sent, and failed messages. Plugins like WP Crontrol also help track event scheduling.
Is it safe to disable WP cron and use a real system cron?
Yes. In fact, it’s recommended for production environments to ensure reliability of scheduled tasks.
What is the best queue size or batch limit for sending newsletters?
It depends on your SMTP provider’s rate limits. A batch size of 50–100 with a delay of 1–2 seconds is typical, but you should adjust based on quotas and error messages.
Exit mobile version