I have a problem involving two community portals and resetting user passwords across the communities.
The main portal is a customer community portal for external organization users. The second portal is also a customer community portal but it's only used by external organization managers to create and onboard new external staff for the main portal. External staff users should never have access to the management portal.
We have a custom Visualforce app where managers can create new users for the portal. We use Site.forgotPassword() to send the new password email to the new user.
Problem: We made some profile and permission set changes unrelated to the communities and the password emails are no longer being sent. When the management user executes Site.forgotPassword() for the new staff user, I see from the debug log that the method returns true. However, there is no sent email attempt in the Email Log. This used to work.
What I've tried so far (EDITED):
Checked email deliverability
Check spam folder
Made the staff users members of the management community by adding the staff permission set to the community.
Tested with email address that doesn't have a plus sign (I used the plus sign to route test gmail addresses to my real one.)
Reverted to old profile and permission set.
Made sure that "Require a minimum 1 day password lifetime" is unchecked.
Checked Visualforce page permissions
Checked the Email Log in Setup.
Question: Is there anything else that might prevent Site.forgotPassword from working?