Clerk: “Development keys” warning or sign-in broken in production

You'll see:
  • Console warning that Clerk has been loaded with development keys
  • Social login works locally but not on your domain
  • Keys start with pk_test_ / sk_test_ on the live site

Why it happens

Clerk development instances are for local testing and have usage limits. Production needs a production instance with its own keys, your own domain verified via DNS, and your own OAuth credentials for social providers.

How to fix it

  1. Create the production instance

    In the Clerk dashboard switch to Production and follow the setup. You'll get pk_live_ and sk_live_ keys.

  2. Add DNS records

    Clerk lists the records to add for your domain. Production requires a domain you own — not a hosting subdomain.

  3. Use your own OAuth credentials

    Shared dev credentials don't work in production. Create your own Google/GitHub OAuth apps and paste the client ID and secret into Clerk.

  4. Swap env vars and redeploy

    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_...
    CLERK_SECRET_KEY=sk_live_...

Common with:

Related fixes