var token = await _userManager.GeneratePasswordResetTokenAsync(user);VerifyUserTokenAsync method returns false most of the time, but after several retries (between 2 to 10 tries), it eventually works.PasswordResetTokenProvider, as our custom OTP provider functions correctly without failure.GeneratePasswordResetTokenAsync and the token sent in the request are identical.SecurityStamp is not null during the process.