Connection troubleshooting
Most connection problems are reachability (ConstellaWP cannot call WordPress) or a token mismatch. Work through the checks in order.
Pairing fails immediately
Section titled “Pairing fails immediately”| Symptom | What to check |
|---|---|
| Invalid URL | Use the public https:// origin (no localhost, no private IPs, no http://) |
| Plugin not detected | Activate ConstellaWP Agent. Visit https://your-site.example/wp-json/constellawp-agent/v1/status — you should see JSON with "active": true |
404 on /wp-json/ |
Permalinks or a security plugin is blocking the REST API. Temporarily disable REST restrictions and try again |
| 401 / invalid token | Copy the token again from Settings → ConstellaWP. It must start with cwa_ (unless you run a pre-1.1.0 agent) |
| Timeout | Firewall, Bot Fight Mode, or a WAF may be blocking ConstellaWP. Allow the app’s outbound HTTPS to /wp-json/constellawp-agent/ |
Site shows Offline
Section titled “Site shows Offline”Offline means ConstellaWP could not complete a signed request to the agent (connection error, timeout, or DNS). Typical causes:
- The site is down or DNS does not resolve
- SSL certificate expired or hostname mismatch
- Hosting firewall / Cloudflare challenge on REST requests
- WP-Cron not running, so heartbeats stall (the agent schedules a heartbeat every 5 minutes)
Fixes:
- Load the WordPress front-end and wp-admin yourself.
- Confirm
GET /wp-json/constellawp-agent/v1/statusfrom a machine outside the host network. - Trigger WP-Cron (real cron calling
wp-cron.phpis more reliable than the default pseudo-cron). - After the site responds, ConstellaWP marks it active again on the next successful heartbeat or job.
Disconnected or authentication errors
Section titled “Disconnected or authentication errors”If jobs fail with invalid_signature, expired_timestamp, replayed_nonce, or invalid_token:
- Open WordPress Settings → ConstellaWP and confirm the plugin still shows connected.
- If you regenerated the token, paste the new one in ConstellaWP site Settings and reconnect.
- Check the WordPress and ConstellaWP server clocks. Signatures reject timestamps older than 5 minutes.
- Rate limiting: 10 failed auth attempts from one IP in 10 minutes return HTTP 429 (
rate_limited). Wait and retry.
REST API and security plugins
Section titled “REST API and security plugins”WordPress security plugins sometimes disable REST for anonymous users. The status endpoint is unauthenticated on purpose (it only reports that the plugin is active). Authenticated endpoints (verify, info, register, jobs) require the HMAC headers.
Allowlist:
GET /wp-json/constellawp-agent/v1/statusPOST /wp-json/constellawp-agent/v1/verifyGET /wp-json/constellawp-agent/v1/infoPOST /wp-json/constellawp-agent/v1/registerPOST /wp-json/constellawp-agent/v1/jobs
Still stuck
Section titled “Still stuck”- Confirm PHP 8.1+ and WordPress 6.0+.
- Disable a caching plugin’s “disable wp-cron” option if heartbeats never fire.
- Check the site Events tab for
site.offlineand job failure payloads. - Reinstall the plugin only as a last resort — that generates a new token and requires a reconnect.