The auto-enroll effect re-fired because completeEnrollment reset enrollmentAttemptKey in finally after each run. That re-triggered enroll API calls and sendVerificationEmail on every tick for unverified users. Track enrollmentSucceeded and send verification email at most once. Co-authored-by: Rotimi Best <[email protected]>