Skip to main content
Each integration has its own failure modes. Common patterns:

Stripe

STRIPE_WEBHOOK_SECRET doesn’t match the endpoint. Re-copy from Stripe → Webhooks → [endpoint] → Signing secret. Each endpoint has its own secret.
Recreate the price in the right mode, or switch keys to match.
Check the endpoint is reachable (no auth in front of it). For local dev, use the Stripe CLI to forward.

OAuth (Google, GitHub, etc.)

The exact redirect URL must match what’s registered at the provider. Include protocol; match trailing slash exactly.
Did you register the production redirect URL at the provider? Each environment needs its own.

Resend / email

Verify your domain (SPF, DKIM, DMARC). Don’t send from noreply@; use hello@.
Verify in Resend, or send from onboarding@resend.dev for testing.
Mark bounced addresses invalid. Stop sending to them — bounces hurt deliverability.

OpenAI / AI providers

Add credit at the provider’s billing page.
Some models require tier-1+ access. Check the provider’s tier requirements.
max_tokens too low, or context window exceeded. Increase or shorten input.

Integrations overview

All integrations.

Common errors

Auth, type, build errors.

Debugging workflow

Systematic approach.
Last modified on April 18, 2026