v1.6.26
soxoj/socid-extractorv1.6.26Aug 4, 2026by better-release[bot]
AI Summary
This release focuses on critical bug fixes for session management, email OTP flows, and transaction handling to prevent deadlocks. It introduces a new utility for stable placeholder emails in the core package and improves Redis performance by switching from blocking commands to SCAN. Additionally, performance optimizations were made for Next.js applications.
Key Highlights
- Fixed session cleanup and JWT key minting to prevent deadlocks in SQLite and ensure transaction consistency.
- Enhanced email OTP flows for sign-up, password reset, and verification to handle invalid inputs gracefully.
- Optimized Redis storage performance by replacing blocking `KEYS` commands with `SCAN` to prevent server blocking.
- Added a utility for creating stable, namespaced placeholder emails in `@better-auth/core`.
New Features
- Utility for creating stable, namespaced placeholder emails on the `placeholder.invalid` domain
Full Release Notes
## `better-auth` ### Bug Fixes - Fixed session cleanup on user deletion to also remove sessions from secondary storage ([#10520](https://github.com/better-auth/better-auth/pull/10520)) - Fixed `findSessions` to skip invalid secondary-storage session entries without discarding other valid sessions ([#10580](https://github.com/better-auth/better-auth/pull/10580)) - Fixed email OTP sign-up to pass the verification type to custom OTP generators ([#10608](https://github.com/better-auth/better-auth/pull/10608)) - Fixed email OTP password reset to allow retrying after entering an invalid password ([#10552](https://github.com/better-auth/better-auth/pull/10552)) - Fixed email OTP verification to no longer reveal whether an email is registered before the OTP is verified ([#10605](https://github.com/better-auth/better-auth/pull/10605)) - Fixed `jwtClient()` collapsing `createAuthClient` type inference when combined with other client plugins ([#10513](https://github.com/better-auth/better-auth/pull/10513)) - Fixed JWT key minting inside database transactions to use the transaction-scoped adapter, preventing deadlocks on SQLite and ensuring keys commit with their surrounding transaction on Postgres and MySQL ([#10623](https://github.com/better-auth/better-auth/pull/10623)) - Fixed `oAuthProxy` to preserve Apple user data from `form_post` callbacks ([#10599](https://github.com/better-auth/better-auth/pull/10599)) - Fixed `oneTapClient()` collapsing `createAuthClient` type inference when combined with other client plugins ([#10635](https://github.com/better-auth/better-auth/pull/10635)) - Fixed database rate-limit cleanup to complete when no background task handler is configured ([#10619](https://github.com/better-auth/better-auth/pull/10619)) - Improved `nextCookies` performance in instrumented Next.js applications by reusing the `next/headers` import promise ([#10467](https://github.com/better-auth/better-auth/pull/10467)) For detailed changes, see [`CHANGELOG`](https://github.com/better-auth/better-auth/blob/a16b30e8437927c08350194000178073b06af8cf/packages/better-auth/CHANGELOG.md) ## `@better-auth/core` ### Features - Added a utility for creating stable, namespaced placeholder emails on the reserved `placeholder.invalid` domain ([#10576](https://github.com/better-auth/better-auth/pull/10576)) For detailed changes, see [`CHANGELOG`](https://github.com/better-auth/better-auth/blob/a16b30e8437927c08350194000178073b06af8cf/packages/core/CHANGELOG.md) ## `@better-auth/redis-storage` ### Bug Fixes - Fixed `listKeys()` and `clear()` to use `SCAN` instead of `KEYS` so large keyspaces no longer block the Redis server ([#10507](https://github.com/better-auth/better-auth/pull/10507)) For detailed changes, see [`CHANGELOG`](https://github.com/better-auth/better-auth/blob/a16b30e8437927c08350194000178073b06af8cf/packages/redis-storage/CHANGELOG.md) ## Contributors Thanks to everyone who contributed to this release: @bytaesu, @Emmaccen, @gustavovalverde, @jashkarangiya, @jeroenvandermerwe, @jlucaso1, @krish-vachhani, @mrosberghaus, @XXMOHAMED012 **Full changelog:** [`v1.6.25...v1.6.26`](https://github.com/better-auth/better-auth/compare/v1.6.25...v1.6.26)