better-authuserId and organizationId parameters to the listUserTeams API for scoped team lookups without switching the active organization (#8977)forceAllowId UUIDs being ignored on PostgreSQL adapters when advanced.database.generateId is set to "uuid" (#9068)APIError is thrown (#9211)$sessionSignal not being triggered for session-rotating endpoints (#9087)partitioned cookie attribute being dropped on set-cookie round-trips (#9235)./instrumentation module to export a no-op in browser and edge environments (#9281)disableRefresh query parameter validation in custom sessions to correctly coerce string values to booleans (#9214)updateUser to allow removing a phone number (#9219)callbackOnVerification not being called when updatePhoneNumber is enabled (#4894)For detailed changes, see CHANGELOG
@better-auth/oauth-provider{ error, error_description } error envelopes for validation failures (#9277)Migration: All six OAuth endpoints (
/oauth2/token,/oauth2/authorize,/oauth2/revoke,/oauth2/introspect,/oauth2/register,/oauth2/end-session) now emit structured{ error, error_description }responses per RFC 6749 §5.2. Update any client code that previously parsed the raw validation error format from these endpoints.
Authorization header when called via auth.api (#9244)For detailed changes, see CHANGELOG
@better-auth/api-keymapConcurrent utility for bounded-concurrency iteration (#9227)For detailed changes, see CHANGELOG
@better-auth/drizzle-adapterdrizzle-orm ^0.45.2 and kysely ^0.28.14 peer versions to track vulnerability fixes (#9165)For detailed changes, see CHANGELOG
@better-auth/expoSecureStore on app startup (#8953)For detailed changes, see CHANGELOG
@better-auth/passkeyFor detailed changes, see CHANGELOG
Thanks to everyone who contributed to this release:
@bytaesu, @GautamBytes, @gustavovalverde, @Kinfe123, @ouwargui, @ping-maxwell, @ramonclaudio, @ruban-s, @stewartjarod, @TanishValesha, @terijaki
Full changelog: v1.7.0-beta.1...v1.7.0-beta.2
Fetched May 1, 2026