pending deliberately — on a self-hosted instance whose upstream review hasn’t cleared, or during a rollback.
What triggers it
POST /v1/accounts/connect/:platformagainst a platform whose developer-portal review hasn’t been approved for your app.POST /v1/postswith atargets[].platformthat points at a not-yet-enabled platform.- An admin toggled a platform off for the org without disconnecting existing accounts (rare).
Response shape
The status is403.
platform_not_enabled.json
What to do
- Check the current state first. Every platform letmepost supports is
liveortrialtoday, so the hosted API does not return this error for any of them. It fires when a platform has been put intopendingdeliberately — on a self-hosted instance, or during a rollback.POST /v1/accounts/connect/:platformcarries astatefield (live,trial, orpending); the platforms overview tracks the same thing, and the changelog announces changes. - For self-host deployments — check that the platform’s OAuth credentials are present in your environment (e.g.
META_APP_ID,TWITTER_CLIENT_ID). The platform stays disabled if its credentials are unset. You can also flip a platform live yourself withPLATFORM_STATE_OVERRIDES(e.g.PLATFORM_STATE_OVERRIDES=tiktok:live). - For the meantime — Bluesky has no upstream review gate and works for every signup today. The API surface (
POST /v1/posts) is identical, so any code you write against Bluesky carries over.
Related
- Platforms overview — current support status.
- Self-host environment — environment variables that gate each platform.

