Troubleshooting
Emails are not being sent
Section titled “Emails are not being sent”Action Scheduler is not working
Section titled “Action Scheduler is not working”- Go to Tools → Scheduled Actions
- Check the status of
wpify_send_emailactions - If they are in “Failed” status, check the errors
WP Cron is disabled
Section titled “WP Cron is disabled”If you have DISABLE_WP_CRON in wp-config.php, you need to set up an external cron:
# Every minute* * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cronSMTP plugin is not working
Section titled “SMTP plugin is not working”If you are using an SMTP plugin:
- Check SMTP settings
- Verify login credentials
- Try sending a test email
Emails arrive with delay
Section titled “Emails arrive with delay”Expected behavior
Section titled “Expected behavior”A short delay (usually up to 1 minute) is normal. Emails are sent asynchronously during the next cron run.
Cron runs infrequently
Section titled “Cron runs infrequently”If cron only runs on page visits:
- Set up an external cron for regular execution
- Or use a service like UptimeRobot for regular pings
Actions remain in “Pending” status
Section titled “Actions remain in “Pending” status”Cron is not running
Section titled “Cron is not running”-
Check
wp-config.php:define( 'DISABLE_WP_CRON', true ); // Problem -
If disabled, set up an external cron
Plugin conflict
Section titled “Plugin conflict”Some security or cache plugins may block cron. Check:
- Security plugins (Wordfence, Sucuri)
- Cache plugins (W3 Total Cache, WP Super Cache)
Actions are in “Failed” status
Section titled “Actions are in “Failed” status”Error during sending
Section titled “Error during sending”-
Check the WordPress debug log:
wp-content/debug.log -
Check the server error log
Email parameters are missing
Section titled “Email parameters are missing”If you see the error “Email args not found”:
- Data may have been deleted before sending
- Check the wp_options table
Diagnostics
Section titled “Diagnostics”Checking Action Scheduler
Section titled “Checking Action Scheduler”// Get the number of pending actions$pending = as_get_scheduled_actions( [ 'hook' => 'wpify_send_email', 'status' => ActionScheduler_Store::STATUS_PENDING,] );
echo 'Pending emails: ' . count( $pending );Manual cron execution
Section titled “Manual cron execution”# Using WP-CLIwp cron event run --due-now
# Or using Action Schedulerwp action-scheduler runChecking stored emails
Section titled “Checking stored emails”-- Find stored emails in wp_optionsSELECT option_name, option_valueFROM wp_optionsWHERE option_name REGEXP '^[a-f0-9]{32}$'LIMIT 10;Performance
Section titled “Performance”Too many pending actions
Section titled “Too many pending actions”If a large number of actions are accumulating:
- Check that cron is running regularly
- Consider increasing the action limit per run:
add_filter( 'action_scheduler_queue_runner_batch_size', function() {return 50; // Default is 25} );
Database table is growing
Section titled “Database table is growing”Action Scheduler keeps action history. For cleanup:
// Automatic cleanup older than 30 days (default)add_filter( 'action_scheduler_retention_period', function() { return 7 * DAY_IN_SECONDS; // 7 days instead of 30} );