Account & Billing
Troubleshooting
Fixes for Cloudflare/WAF blocks, WordPress REST errors and webhook issues.
When publishing or webhook delivery fails, Grandranker tells you: a red alert appears on the Articles page with the specific problem and a fix, the organization owner gets a "Publishing to {domain} needs attention" email, and the Settings navigation flags Integrations with a "Failing" badge. This page covers the three most common causes.

Cloudflare or WAF blocking publishing
If your site sits behind Cloudflare (or another firewall), it can classify Grandranker's requests as bot traffic and block them with a 403 or 503. You'll see the error "Cloudflare is blocking publishing" or, on webhook deliveries, "Cloudflare blocked the request".
Fix: Allow Grandranker's server IP
- In Cloudflare, go to Security β WAF β Tools β IP Access Rules.
- Add Grandranker's server IP
65.21.252.91with the action set to Allow. - Alternatively, create a WAF custom rule that skips security checks for your webhook or
/wp-json/path. - Retry publishing (the Retry publish button on the article alert) or click Send Test on the Webhooks page.
Using a different WAF (Sucuri, Wordfence, AWS WAF)? Same idea: whitelist 65.21.252.91.
WordPress REST API errors
WordPress publishing goes through the REST API at /wp-json/. The Test connection button on the WordPress integration diagnoses the exact failure:
"Invalid credentials" / HTTP 401
Two common causes:
- The username must be the WordPress user_login (Users β All Users, "Username" column). Don't use the email address or display name.
- Your host strips the Authorization header before it reaches WordPress. Add this to
.htaccess, then regenerate the Application Password and paste it fresh:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
"WordPress REST API is not reachable"
A security plugin (Wordfence, iThemes Security, SiteGround Security) or host firewall is blocking /wp-json/. Whitelist the path and the IP 65.21.252.91, confirm https://yoursite.com/wp-json/ loads in a browser, and try again.
"Access forbidden" / HTTP 403
The user account exists but can't use the REST API. Connect with an Administrator account.
"WordPress REST API not found" / HTTP 404
The site URL is wrong, or a security plugin has disabled the REST API entirely. Verify the URL and re-enable the REST API.
"Not allowed to create posts as this user"
Your site rejects Application Password logins altogether. Install the Grandranker WordPress plugin and reconnect. It publishes without them and even queues articles for pull delivery when your site blocks inbound requests. See WordPress.
WordPress.com-hosted sites can't use Application Passwords. They connect via OAuth instead. Use the WordPress.com integration. If publishing there fails with a Jetpack error, check that Jetpack is connected and healthy, then reconnect.
Webhook delivery failures
A delivery succeeds only when your endpoint returns a 2xx status. Failures are retried automatically (up to 3 times with exponential backoff). After 5 consecutive failures, the webhook is auto-disabled. The Delivery History on the Webhooks page shows each attempt's status, response code and body. Send Test runs a live diagnosis with specific steps per failure:
- Domain not found: check the URL for typos. The domain must be publicly accessible (no localhost or private hosts).
- Connection refused: confirm the server is running, the port is right (include non-standard ports in the URL), and inbound connections are allowed.
- Request timed out: the endpoint must respond within 30 seconds and be reachable from the public internet.
- SSL/TLS error: renew an expired certificate and include the full chain. For self-signed certificates, SSL verification can be disabled on the webhook.
- Authentication error (401/403): your endpoint must accept the
Authorization: Bearer <token>header. Copy the token via View Access Token. - Endpoint not found (404): the route path must match exactly, including trailing slashes.
- Method not allowed (405): the endpoint must accept POST requests.
- Server error (5xx): check your server logs and make sure the endpoint can parse the JSON payload.
Once fixed, retry the failed delivery from Delivery History and flip the webhook's Status toggle back on if it was auto-disabled. Full setup details are on the Webhooks page.
Publishing that keeps failing is paused after repeated attempts rather than retried forever. After fixing the cause, use Retry publish on the article alert to resume.
Still stuck? Contact us at [email protected].