v1.4 + Postgres: id: "user_id" mapping ignored in Email OTP
emailOTP plugin ignores the global user.fields.id mapping (e.g., id: "user_id") when using the Postgres adapter in v1.4.1 (and 1.4.0-beta.20). It attempts to query the id column directly, causing a crash if the database uses a custom primary key name.
Unlike other plugins (e.g., twoFactor), the emailOTP plugin does not expose a schema configuration option, so it is impossible to manually correct the mapping as a workaround (as suggested in issue 4066 ).
1.1 What I've Tried:...[1.4.1] ctx.internalAdapter.updatePassword doesn't work since i upgrade to last version
[1.4.1] Uppercase letter in email address causes 400 on email OTP login
{"code":"INVALID_OTP","message":"Invalid OTP"}. This worked before version 1.4.[1.4.0] Wrong default value for additional fields

[1.4.0] New jwks private key generated on each request?
jwks on local env has already >400 rows, each with different private key and 100 of them is returned on /api/auth/jwks which I guess is default list limit. Feels like each request create a new priv key entry (not sure which request)
```
select count(*) from jwks;
...[1.4.0] MagicLink not working after upgrade
ERROR [Better Auth]: null value in column "id" of relation "verification" violates not-null constraint
# SERVER_ERROR: error: null value in column "id" of relation "verification" violates not-null constraint
This is my config:...[OneTap] Cannot show the OneTap UI
[1.4.0-beta.21] importing `better-auth/react-start` crashes `vite dev` on a cold build
reactStartCookies plugin seemed to fix it.
interestingly, the issue seems to be in the actual better-auth/react-start module and not the plugin. any import of the module (that doesn't get removed by vite) causes a bunch of the following errors in the console:...You can't put an empty array as a defaultValue for an additionalField in the user schema
string[], I can use the property defaultValue to [], and it will generate a .default() in my drizzle schema once generated by the Better-Auth CLI.
But better-auth forgets to add the [] as a parameter of the .default() so I get a drizzle schema that says "this field should have a default value !" but doesn't provide that value.
Also, according to Drizzle's documentation (https://orm.drizzle.team/docs/guides/empty-array-default-value#postgresql) the correct way to put an empty array as a default value of an array field is to use sql templates....Bug Report / Security Concern — auth.api.changeEmail applies the change before confirming the link
OICD Provider - Client type is always hardcoded to "web"
activeOrganizationId isn’t inferred in session
OAuth Proxy plugin incompatible with stateless sessions
SERVER_ONLY_PROPERTY on apiKey plugin even though the call is using the server instance
Local Install version of Stripe BetterAuth + Convex issues.
There is a new version of the pre-bundle node_modules/.vite/deps_ssr/better-auth_adapters_drizzle.js
Race Condition with Email OTP
invalid otp when attempting to sign up for the first time. For most users the OTP works successfully, but for a subset of users it doesn't work.
At first I thought maybe the user was just inputting the wrong password, but as this issue keeps coming up, I'm realizing there must be some race condition.Here's some context on my tech stack. I have a Next.js frontend, NestJS backend, and TypeORM....Auth client is not updating the Prisma user model.
Prisma 6.18.0: couldn't read your auth config
prisma-client provider). But I've been getting this issue over and over when running npx @better-auth/cli generate: https://pastes.dev/8mAaIdbClF (couldn't upload log because of the limit). My schema.prisma looks like this:
```
generator client {
provider = "prisma-client"
output = "../generated/prisma"...