Fix sending issues in Wawp plugin

Step-by-step expert diagnostic procedures the support team executes to actively resolve persistent outbound messaging bottlenecks.

13 min read·Updated May 30, 2026
Fix sending issues in Wawp plugin

Below is a series of diagnostic steps the support team performs to resolve the issue on your site.

General Notes
PHP Support: The plugin supports up to PHP 8.3, but PHP 8.1 is preferred.
WordPress Support: The plugin supports the latest version of WordPress.
Site Updates: Ensure all plugins, themes, and WordPress versions on your site are up to date.

Note: When accessing any link mentioned in these instructions, replace sitename.com with your actual site domain name.


🛠 Step-by-Step Resolution

1. Ensure Sender Settings are Set

Make sure you have at least one online ID and that it is set for all sending features. (For developers, check session status via Wawp API Docs).

Sender Verification Settings
Sender Verification Dashboard

Interface for verifying and setting up WhatsApp sender IDs in the Wawp plugin.

Keywords: wawp sender settings, whatsapp id setup, wordpress whatsapp config

2. Make sure you have enabled WooCommerce's High Performance Mode.

WooCommerce's High Performance Mode organizes processes and orders more efficiently and quickly than the old version. To access WooCommerce, go to Settings > Advanced Settings > Features > Enable Compatibility Mode (sync orders between High Performance Order Storage and WordPress Post Storage). (Learn more about HPOS in WooCommerce docs).

WooCommerce HPOS Sync
WooCommerce High Performance Order Storage

Enabling HPOS compatibility mode in WooCommerce settings for better database performance.

Keywords: woocommerce hpos, high performance order storage, wp order optimization

3. Ensure that Cron jobs are installed and running correctly.

The Cron executes functions correctly, such as sending notifications and resending failed messages. Activate the WP Crontrol plugin to verify that the Cron is installed.

WP Crontrol Plugin Install
WP Crontrol Management UI

Installing and using WP Crontrol to monitor and manage WordPress cron events.

Keywords: wp crontrol, wordpress cron manager, manage scheduled tasks
Cron Events Dashboard Tracker
Cron Events Table View

Detailed view of active cron hooks and their schedules in the WordPress dashboard.

Keywords: cron events table, wordpress scheduled hooks, automation logs

Search for wawp to find Wawp background operations. Review the complete hook index below:

Cron Hook NameFunction / Process Description
wawp_cron_refresh_system_infoAudits core environmental parameters and logs entries to the System Status dashboard. (Runs every 12 hours.)
wawp_cron_hourly_self_repairSelf-reconnects offline instances and repairs database inconsistencies. (Runs every hour.)
wawp_cron_daily_cleanupAutomatically purges old messaging history and expired records according to cleanup settings. (Runs every 24 hours.)
wawp_cron_clear_expired_otpsPurges expired OTP database entries to maintain optimal database size.
wawp_cron_process_abandoned_cart_notificationsEvaluates abandoned checkouts to initiate cart recovery notifications. (Runs every 5 minutes.)
wp_campaigns_cron_send_advancedHandles bulk queue campaign dispatches in groups. (Runs every 5 minutes.)
wawp_notif_send_scheduled_notification_actionProcesses and dispatches WooCommerce scheduled alerts, delays, and dynamic transactional notifications.
wawp_sync_hourly_statsSynchronizes click stats, widget opens, and metrics to keep analytics accurate. (Runs every hour.)
wawp_mrsb_auto_sync_eventSynchronizes background configuration states. (Runs every 30 minutes.)

4. Disable WP-Cron Constant

Open the wp-config.php file located in the WordPress root directory, such as public_html. Look for any command to disable, enable, or bypass cron, such as define('DISABLE_WP_CRON', true);

If you have any lines like the one above, delete them, save the file, then disable and re-enable the Wawp plugin.

Target Config Hardcode Line
wp-config.php Cron Configuration

Locating and removing the DISABLE_WP_CRON constant from the wp-config.php file.

Keywords: disable wp cron, wordpress config edit, fix cron issues

5. Ensure the country code is activated.

Some customers are not receiving messages because the country code is not activated. Therefore, the number is not automatically corrected when the user enters it in the purchase or registration form, etc.

Comprehensive Phone Setting Module
Wawp Advanced Phone Settings

Configuring country codes and phone number validation rules in the Wawp settings.

Keywords: whatsapp phone format, country code prefix, phone validation wordpress

To set the country code, go to the Advanced Phone Field in the Wawp plugin and adjust the settings and activate the countries according to your preferences. Then, save the changes you made.

The ultimate goal is to obtain a user number that includes the country code, such as 201111111111 or 96650000000 without the 00 or + at the beginning of the number.

0111111111111 - Error

050000000000 - Error

⚠️ +201111111111 - Wrong Format

⚠️ 00201000000000 - Wrong Format

201111111111 or 96650000000 - Correct / Valid

Phone Validation Preview
Phone Number Formatting Guide

Visual guide showing correct vs incorrect phone number formats for WhatsApp API.

Keywords: whatsapp number format, phone validation guide, correct country code

6. Cron may be disabled due to your hosting.

After hosting, you can access cron control, such as the Wp-toolkit tool in your Cpanel and AAPanel. Disable cron blockers, or contact your hosting provider to confirm. Also, make sure to disable "Takeover wp-cron.php" routines.

Server Toolkit Panel
cPanel WP-Toolkit Cron Settings

Managing cron job blockers and toolkit routines in the hosting control panel.

Keywords: cpanel cron jobs, wp-toolkit settings, hosting cron blocker

7. You're using Cloudflare and have your DNS configured incorrectly.

Contact your hosting provider to configure your DNS and disable the proxy (Cloud icon should be gray) for your main or subdomain, depending on where the Wawp plugin is installed, to ensure direct API communications. (See Cloudflare DNS Guide).

Cloudflare Proxy Disable State
Cloudflare DNS Record Proxy Status

Setting Cloudflare DNS proxy status to 'DNS only' (gray cloud) for API communication.

Keywords: cloudflare dns proxy, gray cloud cloudflare, api dns config

8. You have a plugin that's disrupting your cron or some WordPress features.

Disable all plugins and try submitting after following all the steps above. Then, activate one plugin after the other, creating a request or changing its status each time to determine which plugin is affecting your site's performance and the performance of the Wawp plugin. Then, contact the developer of this plugin to inform them of the problem so they can resolve it or replace it.

Sending does not work well with Litespeed, whether it is an add-on to your site or on the server as an alternative to Apache to get instant sending. Disable it or change your hosting to avoid cached payload conflicts. (More on Litespeed Cache).

WordPress sites running many plugins or specific server environments can experience conflicts that disrupt background delivery, API connectivity, or validation logic. Below is a diagnostic guide for four common areas of plugin conflict:

A. Caching & Optimization Conflicts (LiteSpeed Cache, WP Rocket, W3 Total Cache)

  • The Conflict: Caching engines store static page copies and query results. Wawp relies on dynamic real-time REST API requests to verify phone formatting, handle OTP registrations, and track active instances. If your cache plugin stores REST API responses, it will return outdated, cached payloads, resulting in delivery or verification failures.
  • Technical Solution: Configure your caching plugin's exclusions list to completely bypass Wawp REST API endpoints by adding the following wildcard path to the non-cached URL list: /wp-json/wawp/v1/* Additionally, ensure that any "Object Cache" or "Database Cache" settings are disabled or excluded for Wawp tables.

B. Security Firewalls & WAF Blocks (Wordfence, Solid Security, Cloudflare WAF)

  • The Conflict: Security plugins and external Web Application Firewalls (WAF) scan active HTTP requests. They can block outbound Loopback connections that Wawp uses to verify connectivity to api.wawp.net, or block incoming webhook confirmation notifications, returning a 403 Forbidden error status.
  • Technical Solution: Whitelist the Wawp REST API namespace path (/wp-json/wawp/v1/*) and the WAWP domain gateway IP addresses in your security plugin's whitelist rules or Cloudflare firewall custom bypass policies.

C. Database Optimizers & Transients Purging (WP-Optimize, Advanced Database Cleaner)

  • The Conflict: To save server resources, Wawp caches active WhatsApp instance sessions, API states, and login tokens inside temporary database records called Transients. Plugins that automatically clean or optimize databases by deleting transients can drop active connection sessions, forcing constant connection handshakes and API timeout errors.
  • Technical Solution: Exclude Wawp-specific database keys (particularly those prefixed with _transient_wawp_ or _transient_timeout_wawp_) from periodic automated database purges.

D. Custom Redirects & Membership Takeovers (Theme My Login, Ultimate Member)

  • The Conflict: Membership or user management plugins that override default WordPress login and registration pages can bypass Wawp's custom input hooks. This bypasses the Advanced Phone Field country formatting validation and passwordless authentication redirects, permitting invalid phone numbers to be stored in the database.
  • Technical Solution: Disable standard form redirect rules in your membership settings on any page configured to use Wawp registration fields or OTP login gates.

9. Loopback requests are blocked on your server.

WordPress uses internal "loopback" requests — where the server sends an HTTP request to itself — to handle background tasks, trigger cron jobs, and process OTP verifications. If your server or security plugin blocks these internal requests, all background delivery processes will silently fail.

How to diagnose: Go to WordPress Admin > Tools > Site Health > Info, and look for the "Loopback Requests" status. Alternatively, check the System Status page in the Wawp plugin, which runs this check automatically.

Common causes and solutions:

  • A security plugin (Wordfence, Solid Security) may be blocking loopback. Temporarily disable it to test.
  • The server's firewall may block requests from 127.0.0.1 or localhost. Ask your hosting provider to whitelist internal loopback connections.
  • A .htaccess rule may be redirecting or blocking all requests. Review it for any global deny rules.

10. WordPress REST API is disabled or blocked.

The Wawp plugin relies entirely on the WordPress REST API (/wp-json/wawp/v1/*) for phone validation, OTP authentication, instance management, and webhook handling. If the REST API is globally disabled — by a plugin, theme, .htaccess rule, or WAF policy — all of Wawp's operations will fail completely with no obvious error message.

How to diagnose: Open your browser and navigate to https://yoursite.com/wp-json/wp/v2/types/post. If the page returns a JSON error or a 403 Forbidden page instead of JSON data, your REST API is blocked. The Wawp System Status page checks this automatically.

Common causes and solutions:

  • A security plugin may have a setting like "Disable REST API for non-logged-in users." Disable this restriction or add an exception for the Wawp namespace.
  • A WordPress snippet or functions.php code may include remove_action('rest_api_init', ...) or add_filter('rest_authentication_errors', ...). Remove any such code.
  • A WAF rule may be blocking all wp-json paths. Whitelist /wp-json/wawp/v1/* in your firewall.

❌ Never use plugins or code that fully disable the WordPress REST API on a site running Wawp. The plugin cannot function without it.


11. PHP Memory Limit is too low.

Wawp requires a minimum PHP memory limit of 1024MB (1GB) to handle bulk campaign dispatches, abandoned cart evaluations, and large notification queues. If the memory limit is too low, PHP will silently terminate background processes mid-execution, causing messages to disappear from the queue without being sent and without logging any error.

How to diagnose: Check the System Status page in the Wawp plugin. If it shows a "Warning" for PHP Memory Limit, your server is below the required threshold.

How to fix: Add or update the following line in your wp-config.php file (before the /* That's all, stop editing! */ line):

define( 'WP_MEMORY_LIMIT', '1024M' );

If this does not work, contact your hosting provider to increase the memory_limit value in php.ini or the hosting control panel.


12. PHP Max Execution Time is too low.

Wawp recommends a minimum max execution time of 300 seconds for reliable bulk operations. If this value is set too low (commonly 30 or 60 seconds on shared hosting), PHP will forcibly terminate long-running processes such as campaign dispatches before they finish, leaving messages unsent.

How to diagnose: Check the System Status page. A "Warning" next to PHP Max Execution Time means the current value is below 300 seconds.

How to fix: Add the following to your wp-config.php:

@ini_set( 'max_execution_time', 300 );

Alternatively, add this to your .htaccess:

php_value max_execution_time 300

Or contact your hosting provider to update max_execution_time in php.ini.


13. Wawp database tables are missing or corrupted.

The Wawp plugin stores all its data (activity logs, notification settings, instance configurations, OTP records, campaign queues) in its own dedicated database tables. If any of these tables are missing — due to a failed installation, a database optimizer that dropped them, or a migration error — the plugin will silently stop working.

How to diagnose: Go to the System Status page in the Wawp plugin. The Database section shows the status of every required table. A "Missing" status on any table means it needs to be recreated.

How to fix: The easiest fix is to deactivate and then reactivate the Wawp plugin from WordPress Admin > Plugins. The plugin recreates all missing tables on activation. If tables are still missing after this, contact Wawp support with a copy of your System Status report.

⚠️ If you use a database optimizer plugin (WP-Optimize, Advanced Database Cleaner), ensure it is not configured to drop non-standard tables. Wawp tables all use the wawp_ prefix.


14. SSL is not configured correctly on your server.

All communication between the Wawp plugin and the external API gateway (api.wawp.net) is made over HTTPS. If your server does not have a valid, trusted SSL certificate, or if PHP's curl library cannot verify the certificate chain, all outbound API requests will fail with SSL verification errors, blocking all message delivery.

How to diagnose: Check the System Status page. A "Warning" next to SSL Status means your site is not running over a secure connection. Additionally, check your hosting control panel for SSL certificate expiry.

How to fix:

  • Install a valid SSL certificate via your hosting control panel (Let's Encrypt is free and widely supported).
  • Ensure your site URL in WordPress Admin > Settings > General starts with https://.
  • If you are on a development server with a self-signed certificate, make sure the CA bundle on your server is up to date (ca-certificates package on Linux).

15. WP_DEBUG is enabled on a live production site.

The WordPress WP_DEBUG mode is intended for development environments only. When enabled on a live site, it can cause PHP notices and warnings to be injected into REST API JSON responses, breaking their structure and making them unparseable by the Wawp plugin. This can cause OTP failures, webhook rejections, and notification delivery errors that are very difficult to trace.

How to diagnose: Check the System Status page. A "Warning" next to WordPress Debug Mode confirms WP_DEBUG is active.

How to fix: Open wp-config.php and ensure the following line is set to false:

define( 'WP_DEBUG', false );

Also confirm that WP_DEBUG_LOG and WP_DEBUG_DISPLAY are both set to false on your production server.


Next Steps

If you have followed all these steps and messages are still not delivering, please check your Wawp Activity Hub for specific error codes or visit the System Status page for a full environment report.

Share this article:

Did this page help you?
98% found this article helpful (211 likes)