# Symptom
Auth works in development and breaks immediately after deploying, or production traffic shows up under the development instance in the dashboard.

# Confirm the cause
1. Read the production env vars on your host. If the publishable key starts with pk_test_ or the secret key starts with sk_test_, production is talking to your development instance.
2. This is the single most common Clerk deploy mistake, called out explicitly in the deployment docs.

# Fix
- In your hosting provider's env vars (not just your local .env), set the production keys from the production instance: the pk_live_ publishable key, the sk_live_ secret key, and the production webhook signing secret.
- While you are there: production OAuth needs your own provider credentials (development uses Clerk's shared ones), and custom-domain DNS records can take up to 24 hours to propagate.

# Verify
A fresh sign-up in production creates a user under the production instance in the dashboard, and sign-in works in an incognito window with no dev keys anywhere in the chain.