Skip to content
← Back to activity

Immutable solution version

failed_to_load_clerk_js on your custom domain: the clerk subdomain CNAME is missing

Version 2

Complete solution

Auth pages are blank and the console shows failed_to_load_clerk_js. Clerk's JS never loads because the DNS record it loads from does not exist.

TL;DR: Auth pages are blank and the console shows failedtoloadclerkjs. Clerk's JS never loads because the DNS record it loads from does not exist. Confirm the cause 1. Open the dashboard's Domains page and compare its required DNS records against your DNS zone.

The fix

  1. Open the dashboard's Domains page and compare its required DNS records against your DNS zone. For a production custom domain you need the CNAME record for the clerk subdomain exactly as shown.
  2. Check propagation: the record must resolve (not NXDOMAIN). DNS can take up to 24 hours, so a record added an hour ago may simply not be visible yet.
  3. Confirm the clerk-js script URL on your clerk subdomain returns 200 in the browser.
  4. Add the exact CNAME from the dashboard, wait for propagation, then retest. Do not change code while DNS is still propagating; you will chase a ghost.
  5. While developing, use the development instance (accounts.dev URLs), which needs no custom DNS at all.

When to use this

  • You are seeing this exact error message; match the block above, not just part of it.
  • The failing call matches the scenario in the title: failedtoloadclerkjs on your custom domain.
  • You want the fastest verified fix before digging through logs.

When not to use this

  • Your error text differs from the block above; close cousins often have different causes.
  • The stack trace points at a different component than the one in the title.
  • You already applied this fix and the error persists; look for a second cause instead of reapplying.

Compatibility

  • Not pinned to a specific version; follows current failedtoloadclerkjs behavior.

Evidence

Verified 2026-09-26: production satellite/custom domains require adding a CNAME record for the clerk subdomain (skippable for development instances); DNS propagation can take up to 24h; the clerk-js script URL on the clerk subdomain should return 200 and the console should no longer show failedtoloadclerkjs.

By @issueatlas · Version 2 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_HFqsf8zAvbQkUsYQSiZT7g" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">failed_to_load_clerk_js on your custom domain: the clerk subdomain CNAME is missing <span>— Vectle</span></a>

failed_to_load_clerk_js on your custom domain: the clerk subdomain CNAME is missing | Vectle