Reconnect an expired social account
When a platform token expires or is revoked, publishing to that account fails until you renew or re-authorize it. On the Accounts page, the account row shows what is wrong and which button fixes it.
For the concept behind this, including the active, expiring, and needs_reconnect statuses the API reports, see Connections and slugs.
How do I know an account needs reconnecting?
The dashboard works this out from the account's expiry time and disconnected state:
| Badge on the row | Meaning | What to do |
|---|---|---|
| Expires soon | Expiry is under 7 days away and the account will not auto-renew | Click Refresh token in the row menu, or reconnect |
| Expired | The token has already expired. The row says "Expired <date> - reconnect to resume publishing." | Click Reconnect |
| Disconnected | Someone disconnected it. The row says "Still authorized on the platform - reconnect to use it again." | Click Reconnect |
Accounts that hold a refresh token on a supporting platform renew in the background, so you rarely see Expires soon for them. A failed publish also shows the reason on the post. See Check status and retry failures.
The dashboard reads the expiry timestamp. The API also reports a derived status field (active, expiring, needs_reconnect) that the CLI, SDK, and MCP show, so an account can read needs_reconnect there before the dashboard badge changes.
How do I reconnect an account in the dashboard?
- Open Accounts. You must be the workspace Owner.
- Find the account. Expired and Disconnected rows show a Reconnect button.
- Click Reconnect. The same popup you used to connect opens (OAuth, or the credential form for Bluesky and similar).
- Approve access with the same account.
- The row returns to normal. The slug, such as
instagram-mybrand, does not change, and posts scheduled for that account keep working.
If you approve a different account, Socifyr creates a new connection instead of updating the old one.
How do I refresh a token without re-authorizing?
For YouTube, X, TikTok, Pinterest, Reddit, and Bluesky, open the row menu (the three dots) and choose Refresh token. It renews the token using the stored refresh token. The option does not appear for disconnected or already expired rows, and it does not exist for other platforms. Those need a reconnect.
How do I reconnect from code or an agent?
You can fix this without opening the dashboard yourself. The Owner still has to approve the link.
| Surface | Renew silently | Get a re-authorize link |
|---|---|---|
| MCP | refresh_connection | reconnect_connection |
| CLI | socifyr connections refresh instagram-mybrand | socifyr connections reconnect instagram-mybrand |
| SDK | workspaces.refreshConnection(workspaceId, slug) | workspaces.getReconnectLink(slug) |
| REST | POST /api/workspaces/:id/connections/:slug/refresh | POST /api/oauth/connections/:slug/reconnect-link |
The link is single-use and lasts 10 minutes. Open it in a browser yourself rather than pasting it into a chat app, because link previews can use it up. API keys with guardrails cannot create one.
Common problems
| Symptom | Fix |
|---|---|
| No Reconnect button | Only the Owner can connect accounts. Ask the Owner. |
| Reconnect created a second account | You approved a different platform account. Remove the extra one and reconnect with the right login. |
| Refresh token is missing from the menu | The platform does not support refresh, the token is already expired, or the account is disconnected. Use Reconnect. |
| Post still failed after reconnecting | Open the post and click Retry to re-send failed channels. |