CMS Troubleshooting
Fixes for the most common CMS connection and publishing errors, per platform.
Errors below are quoted exactly as AIclicks shows them. Find yours, apply the fix, and re-try the publish — re-publishing after a failure never creates duplicates.
Any CMS
Site must use https (credentials over http are insecure)
Your site URL starts with http:// or has no valid HTTPS. AIclicks refuses to send credentials over plain HTTP. Enable HTTPS on your site (every major host offers free TLS) and reconnect with the https:// URL.
Refusing to publish to a private or internal address
The URL points at localhost, a .local/.internal host, or a private IP — usually a staging or intranet site. AIclicks can only publish to sites reachable on the public internet. Use your production URL, or expose staging behind a public HTTPS hostname.
… connection is incomplete — reconnect it
The saved connection is missing fields that newer versions of AIclicks require (for example the detected content field). Disconnect the CMS in the publish dialog and connect it again — takes under a minute.
WordPress
WordPress rejected the request (401)
Authentication failed. In order of likelihood:
-
You used your login password. WordPress REST publishing needs an application password — create one under Users → Profile → Application Passwords.
-
A security plugin is blocking REST authentication. Wordfence, iThemes Security, and similar plugins can disable application passwords or strip the
Authorizationheader. Allowlist REST API authentication, or add AIclicks' requests to the plugin's exceptions. -
Your host strips the Authorization header. Common on Apache/CGI hosts. Add this to
.htaccess:RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] -
Wrong username. The username must be the account that owns the application password (the display name doesn't work).
WordPress rejected the request (403)
The credentials are valid but the user can't publish. The WordPress user needs the Author role or higher. Some firewalls (Cloudflare WAF, ModSecurity) also return 403 for REST writes — check your firewall's event log for a blocked POST /wp-json/wp/v2/posts.
WordPress rejected the request (404)
/wp-json/ isn't reachable. Either permalinks are set to "Plain" (Settings → Permalinks — pick anything else and save), or the REST API is disabled by a plugin, or the site URL you entered isn't the WordPress root (for subdirectory installs use https://site.com/blog).
I don't see the Application Passwords section
- Your site must be served over HTTPS (WordPress hides the feature on HTTP).
- Some hosts and security plugins disable it — search the plugin's settings for "application passwords" and re-enable.
- On WordPress older than 5.6, update WordPress.
Webflow
Webflow rejected the request (401)
The API token is invalid or was revoked. Generate a new site token under Site settings → Apps & integrations → API access and reconnect. Tokens are per-site — a token from another site won't work.
Webflow rejected the request (403)
The token is missing the CMS: Read and write permission. Generate a new token with that scope; existing tokens' scopes can't be edited.
Webflow rejected the request (404)
The Collection ID doesn't exist under this token's site. Copy the ID from the collection's settings pane in the Designer (gear icon → bottom of the pane) — it's a 24-character hex string, not the collection's name or slug.
The Webflow collection has no Rich Text field to hold the article body
AIclicks needs one Rich Text field in the collection to write the article into. In the Designer, open the collection's settings, Add field → Rich Text (name it e.g. Post body), save, and reconnect.
Items publish as drafts / don't appear on the live site
"Publish" creates the item live, but the site itself must have been published at least once since the collection was added. Publish the site from the Designer, then re-publish the article.
Shopify
Shopify token exchange failed
AIclicks couldn't trade your Client ID/secret for an access token. Check, in order:
- The app is installed on the store you're connecting. Creating the app isn't enough — use its Install action and select your store.
- Client ID and secret are from the same app, copied whole (no trailing spaces).
- The store domain is the
.myshopify.comone — custom domains don't work here.
Shopify shop must look like your-store.myshopify.com
Enter the store's internal domain, e.g. acme-inc.myshopify.com. You can find it in the Shopify admin URL or under Settings → Domains.
This Shopify store has no blog — create one in the Shopify admin first
Articles need a blog to live in. In the Shopify admin, go to Online Store → Blog posts → Manage blogs → Add blog (most stores ship with a default "News" blog — this error means it was deleted). Create one, then reconnect.
Shopify rejected the post: …
The message after the colon comes from Shopify itself — most often a missing write_content scope ("Access denied"). Edit the app's configuration to include the write_content Admin API scope, reinstall the app on the store, and reconnect.
Framer
Framer rejected the request (401) or the connection fails immediately
The API key is wrong or was regenerated. Create a fresh key in Site Settings → General and reconnect. Keys are per-project — make sure the key and the project URL belong to the same project.
The collection isn't found
The Collection name must match the CMS panel exactly, including capitalization (Blog, not blog). If you renamed the collection, reconnect with the new name.
The article has no body / body field is empty
The target collection needs a Formatted Text field — plain-text fields can't hold the article HTML. Add one in the CMS panel and reconnect so AIclicks re-detects the field.
Publishing is slow
Normal for Framer: publishing an article redeploys the whole site, which can take a minute on large projects. The publish succeeded if the article shows an "Already on Framer" banner in the publish dialog afterwards.
Still stuck?
Email support@aiclicks.io with:
- The CMS you're connecting and the exact error text.
- Your site/store URL.
- A screenshot of the connection form (mask the password/token).