Preliminary Checks
Reproduction
Not a code bug — DNS-layer outage. Reproduce from any network (no project required): curl -v https://clerk.bycoach.io/npm/@clerk/clerk-js@6/dist/clerk.browser.js → Could not resolve host curl -v https://clerk.clerk.com/npm/@clerk/clerk-js@6/dist/clerk.browser.js → Could not resolve host (your own dashboard host) Live failing endpoint: https://clerk.bycoach.io/npm/@clerk/clerk-js@6/dist/clerk.browser.js
Publishable key
pk_live_Y2xlcmsuYnljb2FjaC5pbyQ
Description
Severity
P1 — production auth fully down. Customer-facing.
Symptom
clerk-js fails to load with ERR_NAME_NOT_RESOLVED on:
- Every custom-domain Clerk customer (e.g. our
clerk.bycoach.io)
dashboard.clerk.com itself — your own engineers cannot sign in to the Clerk dashboard right now (tested via Playwright Chromium: 20 console errors, blocked at clerk.clerk.com/npm/@clerk/clerk-js@6/dist/clerk.browser.js)
Failing hostname
frontend-api.clerk.services — NXDOMAIN at recursive resolvers, but stale positive answer at DoH endpoints (TTL=3600 cache). That's why some browsers/networks may transiently appear to work while most fail.
Both clerk.bycoach.io (custom domain) and clerk.clerk.com (your dashboard FAPI) CNAME to this same broken hostname.
Reproduce
getent hosts frontend-api.clerk.services # empty (NXDOMAIN)
getent hosts clerk.clerk.com # empty (CNAME → frontend-api.clerk.services)
getent hosts clerk.bycoach.io # empty (CNAME → frontend-api.clerk.services)
# Controls — these still resolve, ruling out a wider issue:
getent hosts accounts.clerk.services # resolves
getent hosts api.clerk.com # resolves
getent hosts api.accounts.dev # resolves
The Cloudflare worker IP (104.18.34.146 / 172.64.153.110) still serves traffic correctly when DNS is bypassed via --resolve — so the worker is healthy, this is purely a DNS-layer failure.
Authoritative NS for clerk.services
dns1/2/3.easydns.{com,net,ca}, ns1-4.dnsimple.com
SOA serial: 1548369985
Status page
status.clerk.com shows "All Systems Operational" — this is incorrect.
Browser-side error
GET https://clerk.bycoach.io/npm/@clerk/clerk-js@6/dist/clerk.browser.js
net::ERR_NAME_NOT_RESOLVED
Clerk: Failed to load Clerk JS
(code="failed_to_load_clerk_js")
Identical error appears on dashboard.clerk.com itself loading https://clerk.clerk.com/npm/@clerk/clerk-js@6/dist/clerk.browser.js.
Impact
bycoach.io trainer sign-in/sign-up fully blocked. Customer-facing.
- Confirmed reproducing from multiple independent networks: WSL2 dev box, mobile cellular network, Playwright Chromium.
- First observed ~07:30 UTC on 2026-05-08, still failing at the time of filing (~08:45 UTC, ≈75 min).
Workaround
None client-side. Every pk_* publishable key encodes a FAPI URL that ultimately resolves through the same clerk.services zone, so swapping keys does not help. The fix has to happen at Clerk's authoritative DNS for frontend-api.clerk.services.
Notes for triage
This is not a code-level bug in @clerk/clerk-js. It is an infrastructure / DNS issue in the clerk.services zone affecting every customer with a custom domain (and your own dashboard).
Filing here because Discord/support channels are unreachable for us right now and dashboard.clerk.com (where the in-app support widget lives) is itself broken by this outage.
Environment
Not relevant — this is a DNS / infrastructure outage, not a package-level bug. Reproduces independent of OS, Node version, or @clerk/* package version, on any network without a stale DoH cache.
Observed on:
- Browser: Chromium 124 (Playwright) on Linux, Chrome on Windows 11
- Mobile: iOS Safari on cellular network (different ISP, also fails)
- CLI: curl 8.x on WSL2 Ubuntu 22.04 — `getent hosts frontend-api.clerk.services` returns NXDOMAIN
Project (for context only — not the source of the bug):
- @clerk/clerk-react: ^5
- @clerk/clerk-js: served from custom domain clerk.bycoach.io
Preliminary Checks
I have reviewed the documentation: https://clerk.com/docs
I have searched for existing issues: https://github.com/clerk/javascript/issues
I have not already reached out to Clerk support via email or Discord (if you have, no need to open an issue here)
This issue is not a question, general help request, or anything other than a bug report directly related to Clerk. Please ask questions in our Discord community: https://clerk.com/discord.
Reproduction
Not a code bug — DNS-layer outage. Reproduce from any network (no project required): curl -v https://clerk.bycoach.io/npm/@clerk/clerk-js@6/dist/clerk.browser.js → Could not resolve host curl -v https://clerk.clerk.com/npm/@clerk/clerk-js@6/dist/clerk.browser.js → Could not resolve host (your own dashboard host) Live failing endpoint: https://clerk.bycoach.io/npm/@clerk/clerk-js@6/dist/clerk.browser.js
Publishable key
pk_live_Y2xlcmsuYnljb2FjaC5pbyQ
Description
Severity
P1 — production auth fully down. Customer-facing.
Symptom
clerk-jsfails to load withERR_NAME_NOT_RESOLVEDon:clerk.bycoach.io)dashboard.clerk.comitself — your own engineers cannot sign in to the Clerk dashboard right now (tested via Playwright Chromium: 20 console errors, blocked atclerk.clerk.com/npm/@clerk/clerk-js@6/dist/clerk.browser.js)Failing hostname
frontend-api.clerk.services— NXDOMAIN at recursive resolvers, but stale positive answer at DoH endpoints (TTL=3600 cache). That's why some browsers/networks may transiently appear to work while most fail.Both
clerk.bycoach.io(custom domain) andclerk.clerk.com(your dashboard FAPI) CNAME to this same broken hostname.Reproduce
The Cloudflare worker IP (
104.18.34.146/172.64.153.110) still serves traffic correctly when DNS is bypassed via--resolve— so the worker is healthy, this is purely a DNS-layer failure.Authoritative NS for
clerk.servicesdns1/2/3.easydns.{com,net,ca},ns1-4.dnsimple.comSOA serial:
1548369985Status page
status.clerk.comshows "All Systems Operational" — this is incorrect.Browser-side error
Identical error appears on
dashboard.clerk.comitself loadinghttps://clerk.clerk.com/npm/@clerk/clerk-js@6/dist/clerk.browser.js.Impact
bycoach.iotrainer sign-in/sign-up fully blocked. Customer-facing.Workaround
None client-side. Every
pk_*publishable key encodes a FAPI URL that ultimately resolves through the sameclerk.serviceszone, so swapping keys does not help. The fix has to happen at Clerk's authoritative DNS forfrontend-api.clerk.services.Notes for triage
This is not a code-level bug in
@clerk/clerk-js. It is an infrastructure / DNS issue in theclerk.serviceszone affecting every customer with a custom domain (and your own dashboard).Filing here because Discord/support channels are unreachable for us right now and
dashboard.clerk.com(where the in-app support widget lives) is itself broken by this outage.Environment