Thrown when a required environment variable is missing or malformed.
Always has status: 500 — environment errors are server-side configuration issues.
Always `"@supabase/server"`.
Machine-readable error code.
Actionable next step, when one applies.
Documentation URL for this error's `code`.
Structured, non-sensitive diagnostics — accepted auth modes, which credential headers were present, configured key *names*, JWT header fields. Never key values or token payloads.
Always `500` — environment errors are server-side issues.
import { EnvError } from '@supabase/server'
try {
const client = createAdminClient()
} catch (e) {
if (e instanceof EnvError) {
console.error(`[${e.code}] ${e.message}\n${e.hint}`)
// → "[MISSING_SUPABASE_URL] [@supabase/server] SUPABASE_URL is required but not set."
// "Set SUPABASE_URL to your project URL (https://<project-ref>.supabase.co), …"
}
}