diff --git a/.version b/.version
index a6316f06..fa49670c 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-v2.3.0
\ No newline at end of file
+v2.4.0
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9b11d7e9..90c5bd11 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
# Change Log
+## [v2.4.0](https://github.com/auth0/auth0-react/tree/v2.4.0) (2025-07-22)
+[Full Changelog](https://github.com/auth0/auth0-react/compare/v2.3.0...v2.4.0)
+
+**Added**
+- Bump @auth0/auth0-spa-js from 2.2.0 to 2.3.0 [\#858](https://github.com/auth0/auth0-react/pull/858) ([dependabot[bot]](https://github.com/apps/dependabot))
+
+**Fixed**
+- Enhance type safety in Auth0Provider and reducer by introducing generic user type [\#842](https://github.com/auth0/auth0-react/pull/842) ([gyaneshgouraw-okta](https://github.com/gyaneshgouraw-okta))
+
## [v2.3.0](https://github.com/auth0/auth0-react/tree/v2.3.0) (2025-01-21)
[Full Changelog](https://github.com/auth0/auth0-react/compare/v2.2.4...v2.3.0)
diff --git a/docs/classes/OAuthError.html b/docs/classes/OAuthError.html
index 205b8476..fe1a0248 100644
--- a/docs/classes/OAuthError.html
+++ b/docs/classes/OAuthError.html
@@ -1,7 +1,7 @@
OAuthError | @auth0/auth0-react Index Constructors constructor new OAuthError ( error : string , error_description ?: string ) : OAuthError Parameters error : string Optionalerror_description : string Properties Optionalerror_ description error_description ?: string
Optionalstack stack ?: string
Static Optionalprepare Stack Trace prepareStackTrace ?: ( err : Error , stackTraces : CallSite [] ) => any
Constructors constructor new OAuthError ( error : string , error_description ?: string ) : OAuthError Parameters error : string Optionalerror_description : string Properties Optionalerror_ description error_description ?: string
Optionalstack stack ?: string
Static Optionalprepare Stack Trace prepareStackTrace ?: ( err : Error , stackTraces : CallSite [] ) => any
Staticstack Trace Limit stackTraceLimit : number
Methods Staticcapture Stack Trace captureStackTrace ( targetObject : object , constructorOpt ?: Function ) : void Parameters targetObject : object OptionalconstructorOpt : Function Returns void
diff --git a/docs/classes/User.html b/docs/classes/User.html
index 6365885c..16662013 100644
--- a/docs/classes/User.html
+++ b/docs/classes/User.html
@@ -1,4 +1,4 @@
-User | @auth0/auth0-react Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:555 Index Constructors constructor
+
User | @auth0/auth0-react Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:557 Constructors Properties Optionaladdress address ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:573 Optionalbirthdate birthdate ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:568 Optionalemail email ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:565 Optionalemail_ verified email_verified ?: boolean
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:566 Optionalfamily_ name family_name ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:558 Optionalgender gender ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:567 Optionalgiven_ name given_name ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:557 Optionallocale locale ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:570 Optionalmiddle_ name middle_name ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:559 Optionalname name ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:556 Optionalnickname nickname ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:560 Optionalphone_ number phone_number ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:571 Optionalphone_ number_ verified phone_number_verified ?: boolean
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:572 Optionalpicture picture ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:563 Optionalpreferred_ username preferred_username ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:561 Optionalprofile profile ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:562 Optionalsub sub ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:575 Optionalupdated_ at updated_at ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:574 Optionalwebsite website ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:564 Optionalzoneinfo zoneinfo ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:569
+
Constructors Properties Optionaladdress address ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:575 Optionalbirthdate birthdate ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:570 Optionalemail email ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:567 Optionalemail_ verified email_verified ?: boolean
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:568 Optionalfamily_ name family_name ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:560 Optionalgender gender ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:569 Optionalgiven_ name given_name ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:559 Optionallocale locale ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:572 Optionalmiddle_ name middle_name ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:561 Optionalname name ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:558 Optionalnickname nickname ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:562 Optionalphone_ number phone_number ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:573 Optionalphone_ number_ verified phone_number_verified ?: boolean
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:574 Optionalpicture picture ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:565 Optionalpreferred_ username preferred_username ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:563 Optionalprofile profile ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:564 Optionalsub sub ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:577 Optionalupdated_ at updated_at ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:576 Optionalwebsite website ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:566 Optionalzoneinfo zoneinfo ?: string
Defined in node_modules/@auth0/auth0-spa-js/dist/typings/global.d.ts:571
diff --git a/docs/functions/Auth0Provider.html b/docs/functions/Auth0Provider.html
index 93ba6587..5a8a8a51 100644
--- a/docs/functions/Auth0Provider.html
+++ b/docs/functions/Auth0Provider.html
@@ -2,4 +2,4 @@
Copy
Provides the Auth0Context to its child components.
-Returns Element
An OAuth2 error will come from the authorization server and will have at least an
errorproperty which will be the error code. And possibly anerror_descriptionpropertySee: https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.6
-