--- a/better_passwords.module 2026-05-04 12:16:53.735518051 +0200 +++ b/better_passwords.module 2026-05-04 12:17:48.959139271 +0200 @@ -66,8 +66,10 @@ } } - // Better Password validate should come before other validate functions. - array_unshift($element['#element_validate'], 'better_passwords_validate'); + // Append (not prepend) so this runs after password_confirm_validate; + // otherwise password_confirm_validate reads from $element['pass1']['#value'] + // (always empty for auto-generate) and overwrites the generated password in form state. + $element['#element_validate'][] = 'better_passwords_validate'; return $element; } @@ -92,7 +94,7 @@ if ($value === "") { if ($autoGenerate && \Drupal::currentUser()->isAuthenticated() && ($form_state->getFormObject()->getFormId() == 'user_register_form')) { $genpass = \Drupal::service('password_generator')->generate(64); - $form_state->setValueForElement($element, ['pass1' => $genpass, 'pass2' => $genpass]); + $form_state->setValueForElement($element, $genpass); } return TRUE; }