integrations
Ghost troubleshooting
When the Admin API key, the admin URL or the cover upload act up.
Most of the issues below are 5-minute fixes. If you'd rather hand it off, email support@quibo.cc and a real human answers within one business day.
"401" on test connection or publish
Ghost rejected the signed token. Two causes cover almost every case:
The key is incomplete or not an Admin API key. The value must be the full id:secret from the custom integration (a 24-character hex id, a colon, a 64-character hex secret). The Content API key is a single hex string with no colon; Quibo refuses it in the form and Ghost rejects it with a 401. Open Settings, Advanced, Integrations, pick the Quibo integration and copy the Admin API key again, then open the site page in Quibo, Update credentials, and paste it; the key is verified before it replaces the old one.
The Ghost server clock is off. Every request carries a token that is valid for five minutes from the moment Quibo signs it. If the server that runs Ghost is more than a few minutes wrong, the token looks expired or not yet valid and Ghost answers 401. This only happens on self-hosted sites: make sure NTP is running (timedatectl status on most Linux hosts) and the clock is synchronized.
A key that was deleted in Ghost also gives a 401. Create a new custom integration, then open the site page in Quibo and use Update credentials in the Credentials card; the new values are verified before they replace the old ones.
"403" on test connection or publish
The key authenticates but does not have admin access. Ghost integrations always get full Admin API access, so a 403 usually means one of:
- You pasted a key from somewhere else (a Content API key that happens to contain a colon, or a Zapier or staff token).
- A reverse proxy or a security layer in front of Ghost blocks requests to
/ghost/api/admin/from outside. Whitelist the path for Quibo or ask your host.
"404" on test connection
Quibo could not find the Admin API at {site URL}/ghost/api/admin/. Check:
- The site URL is the Ghost site itself, not a landing page or a subfolder redirect.
- If your admin runs on a separate domain (self-hosted sites with
admin.urlset inconfig.production.json), that domain must be set as the Admin URL on the site in Quibo. The public site URL stays as it is. If you left the field empty when connecting, open the site page in Quibo and use Update credentials in the Credentials card to add it; the new values are verified before they replace the old ones. - The site is on Ghost 5. Ghost 4 and older use a different API version and are not supported.
"Validation error" or "slug already exists" on publish
Ghost keeps slugs unique per site. If a post with the same slug already exists (for example a draft you created by hand, or a previous publish that Quibo did not get a response for), Ghost either rejects the post or appends -2 to the slug.
Fix: in the Ghost admin search for the slug under Posts (include drafts) and delete or rename the existing post, then retry the publish from Quibo. If the article was already published by Quibo, use Refresh this article instead of publishing it again: the refresh updates the existing post in place.
Post published without a cover image
The article went live but feature_image is empty. The cover upload failed and Quibo published without it, as designed: a missing image should not block the article. Usual causes:
- Image too large. Ghost limits uploads to 5 MB by default on self-hosted sites (the
imageOptimizationand upload limits in the Ghost configuration) and Ghost(Pro) has its own cap. Nginx in front of a self-hosted site adds its ownclient_max_body_size(1 MB by default). Raise the limit on the proxy and in Ghost. - Unsupported format. Ghost accepts JPEG, PNG, GIF, SVG, WebP and AVIF. The cover generated by Quibo is a PNG or a JPEG, so this only shows up with a custom cover URL.
- Storage adapter errors. Sites that store images on S3 or another external adapter fail the upload when the adapter credentials expire. Test with a manual upload in the Ghost editor.
Once fixed, run Refresh this article: the cover is uploaded again on every refresh.
Post appears as a draft or is missing on the site
We publish with status: published. If the post shows as a draft, a Ghost hook or a member of your team changed it after publishing. Check the post history in the Ghost editor.
If the post is published but not visible on the front page, your theme may filter posts by tag or by author. Quibo publishes without tags: add the tag your theme expects, or change the theme's filter.
Author is wrong
The Default author in your brand profile is matched against the staff users found at connection time. If the chosen user was removed from Ghost, Quibo omits the author and Ghost attributes the post to the site owner. Click Re-crawl brand on the site page to refresh the staff list, then pick the author again and click Save brand profile.
Ghost(Pro) vs self-hosted
Both work the same way with the Admin API and the same key. Differences to keep in mind:
- Ghost(Pro) always runs the current Ghost version, the admin is on the same domain as the site, the clock is right and the upload limit is managed by Ghost. Most 401 and 404 issues above do not apply. Custom integrations require a plan that includes the Admin API (Creator and above).
- Self-hosted sites control their own version, clock, proxy and upload limits, so the checks above matter. Keep Ghost on version 5 and make sure
/ghost/api/admin/is reachable from the internet over HTTPS.
Still stuck?
Email support@quibo.cc with the organization ID shown in Settings, Account. Business plans get priority routing, with a typical response under 8 business hours.
If you'd rather start clean: connecting a fresh test site for 5 minutes is faster than debugging your prod site. Connect a new site