Start here
When something breaks, check in this order. It solves 90% of issues:Check your env vars
Missing or misspelled env vars are the #1 cause of issues. Double-check
.env.local.Check callback URLs and webhooks
Auth callbacks, payment webhooks, and OAuth redirect URIs must match your actual domain.
Common issues
Auth emails or Google login not working
Auth emails or Google login not working
Check these env vars first:
BETTER_AUTH_SECRETNEXT_PUBLIC_APP_URLBETTER_AUTH_URL(if you set it)NEXT_PUBLIC_EMAIL_PROVIDEREMAIL_PROVIDERAUTH_EMAIL_FROMGOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRETNEXT_PUBLIC_GOOGLE_AUTH_ENABLED=true
- Your callback URL must be
/api/auth/callback/google - Register both your localhost AND production domain callbacks
- The domain you’re testing on must match
NEXT_PUBLIC_APP_URL
Magic link sends but login doesn't complete
Magic link sends but login doesn't complete
This is almost always a redirect mismatch. Check:
NEXT_PUBLIC_APP_URLBETTER_AUTH_URL(if you use it)- The domain you clicked the link on
- The callback URL encoded in the email link
Password reset or magic link emails not arriving
Password reset or magic link emails not arriving
Check:
NEXT_PUBLIC_EMAIL_PROVIDER— must beloops,resend, orbrevoif you expect those auth modes in the UIEMAIL_PROVIDER— must beloops,resend, orbrevo(notnone)AUTH_EMAIL_FROM— required for all auth emails- The provider API key for whichever provider you chose
- Loops also needs
LOOPS_AUTH_MAGIC_LINK_TRANSACTIONAL_IDandLOOPS_AUTH_RESET_PASSWORD_TRANSACTIONAL_ID - Resend and Brevo just need the provider key +
AUTH_EMAIL_FROM EMAIL_PROVIDER=nonecompletely disables outbound auth emails
A model doesn't show up in the UI
A model doesn't show up in the UI
Usually one of these:
- The provider API key is missing from
.env.local - The model isn’t listed in
lib/ai/models.ts - The app doesn’t use that provider path
- The model has fewer capabilities than you expected (e.g., text but not browsing, text but not vision)
PDF chat isn't working
PDF chat isn't working
PDF chat depends on multiple things working together:
- Storage must be configured (S3-compatible)
- OpenAI embeddings must be available (
OPENAI_API_KEY) - The document must be uploaded AND indexed
- The document must be attached to the active chat
- Embeddings may not have been created
- Retrieval may have found no strong matches
- OpenAI might be missing, so the vector step can’t run
See Storage and Vector RAG for the full setup.
Image, video, voice, or vision uploads fail
Image, video, voice, or vision uploads fail
Check your storage env vars:Many app flows depend on file storage. If storage isn’t configured, the apps will load but uploads and saved outputs will silently fail.
Payments go through but purchases don't appear
Payments go through but purchases don't appear
Check:
NEXT_PUBLIC_PAYMENT_PROVIDERmatches your active provider- Provider webhook secret is set correctly
- Webhook URL is correct:
/api/payments/stripe,/api/payments/lemonsqueezy, or/api/payments/polar - Hosted checkout URLs are pointing to real products
- Product/variant mapping is configured (via metadata or env map)
Analytics not firing
Analytics not firing
Check:
NEXT_PUBLIC_ANALYTICS_PROVIDER— spelled correctly?- Provider-specific env vars (PostHog key, Plausible domain, DataFast ID)
- Did you restart the dev server?
Voice Studio loads but some modes fail
Voice Studio loads but some modes fail
Voice Studio has several separate API paths: voices, text-to-speech, speech-to-speech, music, and sound effects.If one mode works and another fails, the whole app isn’t broken — check the specific mode’s requirements and your ElevenLabs access level for that feature.
App looks outdated or mismatched
App looks outdated or mismatched
This is usually a branding/content issue, not a runtime bug. Check:
config.ts— site name, URLs, links- Landing page copy and pricing sections
- App descriptions and metadata
- Docs content
Mintlify docs preview looks wrong
Mintlify docs preview looks wrong
Make sure:
- Mintlify is pointed at the
anotherwrapper-premiumrepo - The docs root is set to
docs/public - The nav in
docs/public/mint.jsonmatches the files that actually exist
Configuration
Review all env vars and config surfaces.
Launch Checklist
Full pre-launch verification checklist.

