diff --git a/apps/builder/app/builder/features/topbar/add-domain.tsx b/apps/builder/app/builder/features/topbar/add-domain.tsx index 5b928280454e..e2de69130de0 100644 --- a/apps/builder/app/builder/features/topbar/add-domain.tsx +++ b/apps/builder/app/builder/features/topbar/add-domain.tsx @@ -54,7 +54,7 @@ export const AddDomain = ({ }); // enforce www subdomain when no support for cname flattening // and root cname can conflict with MX or NS - if (!registrar.cnameFlattening) { + if (registrar.known && !registrar.cnameFlattening) { domain = `www.${domain}`; } } diff --git a/packages/domain/src/rdap.ts b/packages/domain/src/rdap.ts index 6b6dcde19965..926079dbea8b 100644 --- a/packages/domain/src/rdap.ts +++ b/packages/domain/src/rdap.ts @@ -88,18 +88,17 @@ export const isDomainUsingCloudflareNameservers = async (domain: string) => { const rdapServer = await findRdapServer(topLevelDomain); if (!rdapServer) { - throw new Error( + console.error( "RDAP Server for the given top level domain could not be found." ); + return undefined; } - if (rdapServer) { - const data = await fetchRdap(rdapServer, domain); - if (data) { - // detect by nameservers rather than registrar url - // sometimes stored as *.NS.CLOUDFLARE.COM - return data.toLowerCase().includes(".ns.cloudflare.com"); - } + const data = await fetchRdap(rdapServer, domain); + if (data) { + // detect by nameservers rather than registrar url + // sometimes stored as *.NS.CLOUDFLARE.COM + return data.toLowerCase().includes(".ns.cloudflare.com"); } return false; }; diff --git a/packages/domain/src/trpc/domain.ts b/packages/domain/src/trpc/domain.ts index 0067b350ada2..2b140ea1d979 100644 --- a/packages/domain/src/trpc/domain.ts +++ b/packages/domain/src/trpc/domain.ts @@ -28,8 +28,12 @@ export const domainRouter = router({ findDomainRegistrar: procedure .input(z.object({ domain: z.string() })) .query(async ({ input }) => { + const isCloudflare = await isDomainUsingCloudflareNameservers( + input.domain + ); return { - cnameFlattening: await isDomainUsingCloudflareNameservers(input.domain), + known: isCloudflare !== undefined, + cnameFlattening: isCloudflare === true, }; }),