💡
Lesson: PUBLIC_ env vars not in SvelteKit server code
P3 - LowLesson Second Brain
PUBLIC_ prefixed env vars not available in SvelteKit $env/dynamic/private. Use non-prefixed vars for server code.
## Problem Second Brain API was returning 500 errors in production with "supabaseUrl is required" ## Root Cause SvelteKit server code was trying to access `env.PUBLIC_SUPABASE_URL` from `$env/dynamic/private`. In SvelteKit: - `PUBLIC_` prefixed vars → only in `$env/dynamic/public` or `$env/static/public` - `$env/dynamic/private` → only non-PUBLIC vars ## Fix 1. Added `SUPABASE_URL=https://...` to .env (without PUBLIC_ prefix) 2. Updated all server files to use `env.SUPABASE_URL` instead of `env.PUBLIC_SUPABASE_URL` 3. Added SUPABASE_URL to Vercel environment variables ## Files Changed - src/lib/server/auth.ts - src/lib/server/embeddings.ts - src/routes/api/*/+server.ts (all API routes) ## Commit 080b629
Created: Sun, Feb 15, 2026, 1:49 AM by bob
Updated: Sun, Feb 15, 2026, 1:49 AM
Last accessed: Sun, Feb 15, 2026, 1:49 AM
ID: 47891a0a-ff50-4493-8160-91957861d905