Skip to content

Connection Issues

Fresh

Site Won't Connect

Checklist

  1. MainWP Child plugin installed and activated on the child site
  2. Unique Security ID matches between Dashboard and child (if used)
  3. OpenSSL enabled on both servers (php -m | grep openssl)
  4. cURL enabled on Dashboard server (php -m | grep curl)
  5. No firewall blocking Dashboard → Child HTTP requests
  6. No WAF rules blocking MainWP POST requests (Cloudflare, Sucuri, Wordfence)
  7. SSL valid on both Dashboard and child site

Common Causes

CauseSymptomFix
Child plugin not active"MainWP Child not detected"Activate the plugin on the child site
Security ID mismatch"Unauthorized"Reset Unique Security ID on both sides
Firewall blockingTimeout errorsWhitelist Dashboard IP in child site firewall
Cloudflare WAF403 errorsCreate WAF rule to allow Dashboard IP
.htaccess blocking403 or 500 errorsCheck for IP-blocking rules in .htaccess
Plugin conflictConnection dropsDeactivate other plugins, test, reactivate one by one
Wrong URL"Site not found"Verify URL is correct (with or without www, https)
Hosting limitsRandom disconnectsUpgrade hosting or increase resource limits

Cloudflare Configuration

If child sites are behind Cloudflare:

  1. Get your Dashboard server IP
  2. Cloudflare → Security → WAF → Tools → IP Access Rules
  3. Add Dashboard IP with action "Allow"

Option 2: Page Rule

  1. Cloudflare → Rules → Page Rules
  2. URL: *example.com/wp-admin/admin-ajax.php*
  3. Settings: Security Level = Essentially Off, Disable Security

Option 3: Firewall Rule

(http.request.uri.path contains "/wp-admin/admin-ajax.php" and ip.src eq YOUR_DASHBOARD_IP)

Action: Allow

Wordfence Configuration

If Wordfence is blocking MainWP:

  1. Wordfence → Firewall → Manage Firewall
  2. Whitelisted IPs → Add Dashboard server IP
  3. Save Changes

Security Plugin Conflicts

PluginIssueFix
WordfenceBlocks POST requestsWhitelist Dashboard IP
iThemes SecurityRate limitingWhitelist Dashboard IP in Lockout settings
All In One WP SecurityFirewall blocksAdd Dashboard IP to whitelist
SucuriWAF blocksWhitelist in Sucuri dashboard
Shield SecurityRate limitingAdd exception for MainWP

Reconnection Steps

If a previously connected site loses connection:

  1. Try Sync first — Dashboard → Sites → site → Sync
  2. If sync fails, try Reconnect — Dashboard → Sites → site → Reconnect
  3. If reconnect fails, remove and re-add the site
  4. If re-add fails, check all items in the checklist above

Via API

bash
# Check site connection status
curl -u "admin:xxxx" \
  -H "Content-Type: application/json" \
  -d '{"input":{"site_id": 123}}' \
  "https://your-dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/get-site-v1/run"

# Reconnect a site
curl -X POST -u "admin:xxxx" \
  -H "Content-Type: application/json" \
  -d '{"input":{"site_id": 123}}' \
  "https://your-dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/reconnect-site-v1/run"

Timeout Issues

SettingWhereRecommended
max_execution_timephp.ini on Dashboard300
default_socket_timeoutphp.ini on Dashboard300
cURL timeoutMainWP Settings300
Proxy timeoutNginx/Apache on child300
Cloudflare timeoutCloudflare dashboard300 (Enterprise only)

Still Not Working?

  1. Enable debug logging on both Dashboard and child
  2. Check wp-content/debug.log for error details
  3. Test direct connectivity:
    bash
    # From Dashboard server
    curl -I https://child-site.com
    curl -I https://child-site.com/wp-admin/admin-ajax.php
  4. Contact MainWP support with the debug logs