Troubleshooting

Most setup failures come from missing env vars, mismatched provider secrets, auth redirect gaps, or disabled scheduled jobs.

ProblemCheck first
The app does not boot locallyConfirm the core required .env.local values and the pinned Node and pnpm versions.
Sign in redirects failCheck Supabase Site URL and callback URLs for the current domain.
Google security email still shows a Supabase hostnameConfirm the app uses Google Identity Services ID-token sign-in, NEXT_PUBLIC_GOOGLE_CLIENT_ID matches the Supabase Google provider, Google Cloud has the product domain and authorized JavaScript origin, and test a new sign-in. Google does not rewrite older notices.
Billing setup is not readyCheck provider selection, enabled models, catalog JSON, API key, and webhook secret.
Webhook signature is invalidUse the signing secret from the exact provider endpoint that sends events to the app.
Customer history is empty after checkoutConfirm the webhook arrived and the provider event was projected into local billing tables.
Email does not sendCheck RESEND_API_KEY, sender domain verification, sender email, reply-to email, and send logs.
Scheduled work does not runCheck the scheduler URL, method, interval, CRON_SECRET, and Authorization header.
Admin cannot see a pageCheck role, feature access, dashboard navigation config, and route guard behavior.