Custom domain troubleshooting

Fix a custom domain by symptom: verification that never finishes, records at the wrong DNS provider, CAA records, a root domain that does not load, and what happens to domains when a plan lapses.

Almost every custom domain problem is fixed at your DNS provider, not in Floot. Start with the DNS records view, then find what you are seeing in the table below.

Start here: the DNS records view

For a domain that is already connected, open Publish and click the gear next to the domain. Under DNS records Floot lists the records the domain needs and looks each one up for you.

Sends visitors to your app
A records, with the values listed there.
Keeps HTTPS working
One CNAME record. The HTTPS certificate renews through it, so it has to stay after setup.

Each record is marked Found, Missing or Couldn't check. Add or correct whatever is missing at your DNS provider, then click Check again. The root domain and www are listed as two domains, each with its own gear, so look at both.

Fix the records; do not remove the domain and add it again

Removing a domain from Floot does not repair a DNS record, and adding it back sends you through verification again. Unless the domain is no longer listed on the Publish screen, the fix is at your DNS provider.

By symptom

What you seeMost likely causeWhat to do
The wizard stays on verifying for more than 15 minutesThe verification CNAME is missing, in the wrong place, or has the wrong valueRead the message the wizard shows — see Verification does not finish
"We can't find the verification record yet", but you added itIt was added at a DNS provider your domain does not useSee Records added at the wrong DNS provider
"Please delete all of your CAA records", or certificate validation failedCAA records on the domain block the certificateSee CAA records
"Blocked by another domain on this project"An older domain on the project lost its verification recordAdd the record the wizard shows to that older domain's DNS, then try again
www loads, the root domain does not (or the other way round)The A records for that name are missing or point somewhere elseSee The root domain does not load, but www does
The domain shows your registrar's default page or an old siteIts A records still point to the registrar or a previous hostAdd Floot's A records and delete the other A records on the same names
The domain worked and then stoppedA record was removed at the DNS provider, or the domain was removed from the projectSee It worked, and then it stopped
The wizard says the domain is suspended by its registrar, or has expiredA hold or an expiry at the registrar. No DNS change will helpLift the hold or renew with the registrar, then check again — see How to add a custom domain
It works for you but not for everyone yetNew DNS records are still spreadingIt can take up to 24 hours for a domain to resolve everywhere

Verification does not finish

Floot proves you control the domain by finding one CNAME record. While it waits, the wizard looks the record up itself and tells you which of these is the case.

The verification record is in the wrong place
The record exists, but under the wrong name. The usual cause is typing the full name into a host field that adds your domain by itself, which leaves it at something like _abc.yourapp.com.yourapp.com. Change the record's host (name) to exactly what the wizard shows and keep its value.
The verification record has the wrong value
The name is right, but it points somewhere else. Copy the value with the wizard's copy button and paste it over the old one. If your provider adds your domain to the end of the value, end the value with a dot.
We can't find the verification record yet
There is no CNAME at that name. Add it with the host and value shown. A record you just added can take a few minutes to appear. If your provider already shows it, see the next section.
Verification record found
Nothing left to do. Floot is waiting for the certificate, which usually takes a few minutes.
  • Connecting a subdomain? For app.yourapp.com, the verification CNAME belongs to the root domain: its name ends in yourapp.com, not in app.yourapp.com. Only the A records go on the subdomain.
  • On Cloudflare? Set Floot's records to DNS only (grey cloud). With the proxy on, verification cannot see them.

Records added at the wrong DNS provider

A domain reads its DNS records from one place: the provider its nameservers point to. That is not always where you bought the domain. If the domain was bought at one company and its nameservers were later pointed to another, such as Cloudflare or a previous website host, records you add at the first company are never seen. The sign is a record that shows in your provider's dashboard while Floot keeps reporting it Missing.

  1. 1

    Find the nameservers

    Your registrar's page for the domain lists them. From a terminal you can also run:

    dig NS yourapp.com +short
  2. 2

    Add the records where the nameservers point

    Sign in to the company the nameservers belong to and add Floot's records there. This is the simple fix.

    The other way is to point the nameservers back to your registrar and add the records there. That moves all of the domain's DNS, email records included, so copy the existing records over first.

  3. 3

    Check again

    In the wizard, click I've added them — check again. For a connected domain, use Check again in the DNS records view.

CAA records

A CAA record tells certificate authorities which of them may issue a certificate for your domain. If the domain has CAA records that leave out the certificate authority Floot uses, the certificate fails and the wizard asks you to delete your CAA records.

  1. At your DNS provider, delete the domain's CAA records. If you need to keep them, contact support for the record to add.
  2. Run Add Custom Domain again from the start. A certificate that failed is not tried again by itself; a new run requests a new one.

The root domain does not load, but www does

The root domain (yourapp.com) and www.yourapp.com each need their own A records. When one works and the other does not, the other's records are missing or still point somewhere else.

  1. Open Publish, click the gear next to the address that does not load, and look at Sends visitors to your app.
  2. At your DNS provider, add the three A records under that name. The root domain's name is usually written @; some providers want the field left empty.
  3. Delete any other A records on the same name, such as the registrar's default page. Left in place, they send some visitors there.
  4. Click Check again.

Once both load, you can make one of them redirect to the other with the Primary Domain setting — see Search engines and SEO settings.

It worked, and then it stopped

  • A record was removed. This often happens when DNS is tidied up or moved to another provider. Open the DNS records view, see what is Missing, and put it back. The CNAME is the one people delete after setup, and without it HTTPS stops when the certificate comes up for renewal.
  • The domain registration expired. Renew it with your registrar.
  • The domain is no longer listed on the Publish screen. It was removed from the project. See the next section.

When a plan lapses

Custom domains need a paid plan on the project owner's account. If that plan is cancelled, goes unpaid or lapses, Floot emails a warning, and once the plan has been in that state for more than 3 days it removes every custom domain connected to the owner's projects. The app stays live on its floot.app address.

  • Visitors to the domain no longer reach your app. Your DNS still points at Floot, but the domain is no longer connected to a project.
  • The domain itself is untouched. It stays registered to you at your registrar, and your DNS records stay where they are.
  • Paying again does not reconnect it. Open Publish, click Add Custom Domain, and add each domain again. If you had a primary domain, set it again too.
  • If hosting credit ran out and the app was taken offline, its custom domains were removed with it. Bring the balance back, publish the app, then add the domains — see Hosting.