#29093 Virtual-key auth fails with 'relation "LiteLLM_VerificationToken" does not exist' under transaction-pooled DATABASE_URL (e.g., Neon pgbouncer, Prisma raw queries lose search_path)
## Summary
When `DATABASE_URL` points at a transaction-pooled Postgres endpoint (e.g. Neon's `-pooler.*` hostnames, PgBouncer in transaction mode) AND the LiteLLM Prisma schema is in a non-default Postgres schema (e.g. `?schema=litellm` in the connection string), **all virtual-key authentication on `/chat/completions` fails with**:
```json {"error":{"message":"Authentication Error, relation \"LiteLLM_VerificationToken\" does not exist","type":"auth_error","code":"401"}} ```
Master-key auth on `/chat/completions` works (it doesn't hit the raw VerificationToken query). `/key/info`, `/key/generate`, `/key/update`, `/key/delete` all work (they use the Prisma model API, which honors `?schema=`). Only completions-time virtual-key auth — which goes through unqualified raw SQL — fails.
## Empirically verified root cause
This is a manifestation of [prisma/prisma#7975](https://github.com/prisma/prisma/issues/7975): under transaction pooling, Prisma's per-session `SET search_path` lands on a different connection than the raw query that follows. Confirmed with direct `psql` testing:
| Connection path | `SHOW search_path` | `SELECT count(*) FROM "LiteLLM_VerificationToken"` | |---|---|---…