This is the practical guide to getting Bluesky connected to PostOnce and keeping it connected. If you just want to know how to schedule once you're set up, see how to schedule Bluesky posts. This page is about the connection itself — how app-password authentication works, what PostOnce can do once connected, and the errors people actually hit.
What you need before you connect
Bluesky works differently from most platforms. There's no OAuth pop-up and no permissions consent screen — instead you connect with your handle and an app password. Sort these two things out first and the connection takes about a minute:
- Your full Bluesky handle. This is the whole thing, including the suffix — for example
yourname.bsky.social, or your custom domain if you use one. Not just your display name. - An app password generated in the Bluesky app. This is a separate, revocable password — not your main account password. We'll generate one in the next section.
Never enter your main Bluesky password into PostOnce. PostOnce only supports app passwords, and using one is what keeps your real login safe and your access revocable.
How app-password auth works (and what PostOnce can do)
Bluesky uses the AT Protocol, which lets you create app passwords — scoped, throwaway credentials you hand to a third-party tool instead of your real password. PostOnce signs in with the app password you provide, and that's the whole authentication model. No consent screen, no token dance.
Here's what that means in practice:
- PostOnce can publish posts to your Bluesky account on your behalf, at the times you schedule them. (Bluesky posts have a 300-character limit — see how to schedule Bluesky posts for working within it.)
- You stay in control. Because you connected with an app password rather than your main login, you can revoke PostOnce's access at any time from Bluesky's App passwords screen — without changing your real password or signing out of Bluesky anywhere else.
- Your main password is never shared. PostOnce never sees, stores, or asks for it. This is the safe, recommended way to connect, and the only way PostOnce supports.
If you ever want to cut PostOnce off, you don't disconnect from inside Bluesky's settings and uninstall anything — you just delete that one app password.
How to generate an app password
In the Bluesky app:
- Open Settings.
- Go to Privacy and security.
- Tap App passwords.
- Tap Add app password and give it a recognisable name (e.g. "PostOnce").
- Bluesky shows you the password once — it looks like
xxxx-xxxx-xxxx-xxxx. Copy it now; you won't be able to see it again.
Keep that password to hand for the next step. If you lose it, no harm done — just generate a fresh one.
How to connect Bluesky, step by step
- Log in to PostOnce and open your dashboard.
- Click Connect Account and choose Bluesky.
- Enter your full handle (e.g.
yourname.bsky.social). - Paste the app password you generated — not your main password.
- Click Connect. PostOnce signs in and your Bluesky account is connected and ready to schedule.
For security, PostOnce rate-limits connection attempts — a handful of tries per 15 minutes — to stop anyone brute-forcing logins. So if you mistype, fix the typo and wait a moment rather than hammering retries.
Common Bluesky connection errors and how to fix them
These are the issues people hit most often, with the actual fix rather than a generic "try again".
"Invalid identifier or password"
Almost always one of two things: you entered your main password instead of an app password, or you mistyped your handle. Generate a fresh app password in the Bluesky app and enter your full handle — including .bsky.social or your custom domain. Paste the app password rather than typing it to avoid slips.
"Too many attempts" / temporarily blocked
You've hit the connection rate limit from too many tries in a short window. Wait about 15 minutes, then try again — once, with a correct full handle and a freshly generated app password. Repeated rapid retries will only keep the block in place.
Handle not found
You've entered a display name or a partial handle. PostOnce needs the full handle, such as name.bsky.social (or your custom domain). Copy it exactly as it appears on your Bluesky profile.
Posts suddenly stop publishing
This usually means the app password was revoked in your Bluesky settings — once revoked, PostOnce can no longer sign in. Generate a new app password and reconnect via Settings → Integrations in PostOnce. Nothing in your schedule is lost — your queued posts are preserved and resume publishing once you're reconnected.
Keeping Bluesky connected
App passwords don't expire on their own, so a Bluesky connection tends to be stable. To avoid surprise gaps:
- Don't delete the PostOnce app password in Bluesky unless you actually want to disconnect — doing so stops publishing immediately.
- If you do revoke it, generate a new one and Reconnect from Settings → Integrations.
- Give the app password a clear name like "PostOnce" so you don't revoke the wrong one later.
Once connected, you're ready to schedule Bluesky posts — and to publish the same content to X, Instagram, and the rest from a single composer.
Frequently Asked Questions
Do I use my normal Bluesky password to connect PostOnce?
No — never enter your main Bluesky password. PostOnce connects using an app password, which is a separate, revocable credential you generate in the Bluesky app under Settings → Privacy and security → App passwords. Using an app password keeps your real login private and means you can cut off PostOnce's access at any time without changing your main password.
How do I generate a Bluesky app password for PostOnce?
In the Bluesky app, go to Settings → Privacy and security → App passwords → Add app password. Give it a name like "PostOnce", then copy the password Bluesky shows you — it looks like xxxx-xxxx-xxxx-xxxx and is only shown once. Paste that into PostOnce along with your full handle to connect. If you lose it, just generate a fresh one.
How do I revoke PostOnce's access to my Bluesky account?
Open the Bluesky app, go to Settings → Privacy and security → App passwords, and delete the app password you created for PostOnce. That immediately stops PostOnce from publishing, and it doesn't affect your main login or any other app. Because access lives in a single app password, revoking is clean and instant.
Why does my Bluesky connection say 'Invalid identifier or password'?
The two usual causes are entering your main account password instead of an app password, or mistyping your handle. Generate a fresh app password in Bluesky and enter your full handle, including the .bsky.social suffix or your custom domain — not just your display name. Pasting the app password rather than typing it avoids small mistakes.
Why am I getting 'Too many attempts' when connecting Bluesky?
PostOnce rate-limits connection attempts — a handful of tries per 15 minutes — to prevent anyone brute-forcing logins. If you've retried several times in quick succession, wait about 15 minutes, then try once more with your correct full handle and a freshly generated app password rather than retrying repeatedly.