Could you shed some light how the ResetURL is build up? You probably use a microflow where you do some string manipulation and store the result in ResetURL. Try to figure out why this URL can sometimes be only the base URL. Empty objects may be?
I am using the microflow of the forgot password module : SF_CheckAccount, and if it’s succesfull i send the mail.
the SF_CheckAccount microflow do the following :
retrieve the account of the database corresponding to the mail entered. if the account is found, generate UUID (java action), generateURL(java action), and change the forgotPassword entity (the attribute forgotpasswordURL take the variable url returned by the generateURL java action).