You set up a custom domain as your Bluesky handle, but the verification process fails. The handle shows as pending or returns an error instead of going live. This happens because Bluesky must confirm you control the domain through a specific DNS record. This article explains why verification fails and provides the exact steps to fix it.
Key Takeaways: Fixing a Bluesky Custom Domain Handle
- DNS TXT record at _atproto.yourdomain.com: Must contain the exact value Bluesky provides during setup.
- TTL setting on the TXT record: Set to 300 seconds (5 minutes) or lower to speed up propagation.
- DNS propagation time: Can take up to 48 hours; use a propagation checker to confirm the record is live before retrying.
Why a Custom Domain Handle Fails to Verify on Bluesky
Bluesky uses a technology called AT Protocol to link your account to a custom domain. The protocol requires a specific DNS TXT record on your domain. The record must be placed at the subdomain _atproto.yourdomain.com. The value of this record is a unique string that Bluesky generates when you start the setup. If the record is missing, has the wrong value, or has not propagated across the internet, Bluesky cannot confirm your ownership. The verification process then fails with a generic error or a pending status that never resolves.
The Exact DNS Record Bluesky Requires
Bluesky looks for a TXT record at _atproto.yourdomain.com. The record value must be exactly did=did:plc:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, where the x string is your unique decentralized identifier. You cannot guess or reuse this value. Bluesky generates it when you start the handle setup inside the app. If you copy the value incorrectly or modify it, verification fails.
DNS Propagation Time
After you add or update a DNS TXT record, it takes time to spread across all DNS servers worldwide. This is called propagation. Most providers update within minutes, but some take up to 48 hours. If you try to verify immediately after adding the record, Bluesky may not see it yet. The result is a verification failure even though the record is correct.
Steps to Fix a Custom Domain Handle Not Verifying
Follow these steps in order. Do not skip any step. If you have trouble at a particular step, stop and verify the previous step was completed correctly.
- Open Bluesky Settings and Start the Handle Setup
Open the Bluesky app on your phone or desktop. Tap the menu icon in the top-left corner. Select Settings. Under the Account section, tap Handle. Tap I have my own domain. Bluesky will display a unique TXT record value. Copy this value exactly. Do not add spaces or extra characters. - Log In to Your Domain Registrar or DNS Provider
Open a new browser tab and log in to the company where you bought your domain. Common providers include Namecheap, GoDaddy, Cloudflare, Google Domains, and Squarespace. Navigate to the DNS settings or DNS management page for your domain. Look for a section called Advanced DNS, DNS Records, or Zone Editor. - Add a New TXT Record
Create a new record. Set the type to TXT. In the Name or Host field, enter_atproto. Do not include your full domain name. In the Value or Content field, paste the exact string you copied from Bluesky. Set the TTL (Time to Live) to 300 seconds or 5 minutes. A lower TTL makes propagation faster. Save the record. - Wait for DNS Propagation and Check With a Tool
Wait at least 5 minutes. Then use a free DNS propagation checker like whatsmydns.net or dnschecker.org. Enter_atproto.yourdomain.comin the tool. Select TXT as the record type. Run the check. You should see the exact value you pasted. If you see it, the record is live. If not, wait longer and check again. Propagation can take up to 48 hours in rare cases. - Verify the Handle in Bluesky
Return to the Bluesky app. You should still be on the Handle setup screen. Tap Verify DNS Record or Next. Bluesky will check the record. If the record is correct and propagated, your custom domain handle will become active immediately. If it still fails, move to the next section.
If Bluesky Still Has Issues After the Main Fix
Sometimes the verification fails even after you add the correct TXT record. The following issues are the most common causes.
“The DNS record was not found” Error
This error means Bluesky cannot see any TXT record at _atproto.yourdomain.com. The most likely cause is an incorrect DNS record name. Verify that the Name or Host field contains only _atproto and not _atproto.yourdomain.com. Some providers add the domain automatically. Check your provider’s documentation for the correct format. Another cause is that you added the record to the wrong domain. Double-check you are editing the correct domain name in your DNS provider.
“The TXT record value does not match” Error
Bluesky sees a TXT record but the value is wrong. This usually happens when you copy the value incorrectly. The value is case-sensitive and must include did= at the beginning. Delete the existing TXT record and add a new one with a fresh copy from Bluesky. To get a fresh copy, go back to Bluesky Settings > Handle and restart the setup. Bluesky will generate a new value. Copy it and paste it directly into the DNS record.
Multiple TXT Records at the Same Subdomain
Some DNS providers let you add multiple TXT records with the same name. If you have more than one TXT record at _atproto, Bluesky may read the wrong one. Delete all existing TXT records at _atproto and add only the one Bluesky provided. After deleting, wait for propagation again before retrying verification.
Cloudflare Proxy (Orange Cloud) Interfering
If you use Cloudflare for DNS, make sure the orange cloud icon (proxy) is set to gray (DNS only) for the TXT record. Cloudflare’s proxy does not support TXT records. If the orange cloud is on, Bluesky cannot read the record. Edit the record in Cloudflare and click the orange cloud to turn it gray. Save the change.
Common DNS Provider Setup Differences
Each DNS provider has a slightly different interface. The table below shows how to add the TXT record for the most popular providers.
| Provider | Name / Host Field | Value / Content Field |
|---|---|---|
| Namecheap | Type _atproto in the Host field |
Paste the full did=... string in the Value field |
| GoDaddy | Type _atproto in the Name field |
Paste the full string in the Value field |
| Cloudflare | Type _atproto in the Name field |
Paste the full string in the Content field |
| Google Domains | Type _atproto in the Host name field |
Paste the full string in the Text data field |
| Squarespace | Type _atproto in the Host field |
Paste the full string in the Data field |
After adding the record on any provider, always wait for propagation and use a checker tool before retrying verification in Bluesky.
You now know how to fix a custom domain handle that is not verifying on Bluesky. The key is a correctly placed DNS TXT record at _atproto.yourdomain.com with the exact value from Bluesky. After the record propagates, verification completes within seconds. As an advanced tip, set your TTL to 300 seconds or lower during setup to speed up propagation. Once the handle is active, you can increase the TTL to a higher value like 3600 seconds to reduce DNS lookup load.