diff --git a/password_policy.module b/password_policy.module
index 9a139f1..6b379e9 100644
--- a/password_policy.module
+++ b/password_policy.module
@@ -150,6 +150,20 @@ function _password_policy_user_profile_form_validate(&$form, FormStateInterface
  *   Boolean if the password passes/fails or a detailed listing of failures.
  */
 function _password_policy_constraints_validate(&$form, FormStateInterface &$form_state, $generate_policy_table = FALSE, &$policies_table_rows = array()) {
+  $config = \Drupal::config('user.settings');
+
+  // When user email verification is enabled Drupal doesn't allow setting
+  // password on registration. The Drupal generated password will not always
+  // meet the applicable policies in place. In that scenario the password
+  // validation should be skipped. The user will have to set a password
+  // after clicking the one-time login link instead.
+  if ($form['#form_id'] == 'user_register_form' && $config->get('verify_mail')) {
+    if ($generate_policy_table) {
+      return [];
+    }
+    return TRUE;
+  }
+
   $expiration = $form_state->getValue('field_password_expiration');
   if (!is_null($expiration) && $expiration['value'] === FALSE) {
     $form_state->setValue('field_password_expiration', array('value' => 0));
