diff --git a/administerusersbyrole.module b/administerusersbyrole.module
index e615650..843d5fa 100644
--- a/administerusersbyrole.module
+++ b/administerusersbyrole.module
@@ -214,11 +214,11 @@ function administerusersbyrole_form_user_form_alter(&$form, &$form_state) {
 
   // Allow empty email.
   // @todo Remove when https://www.drupal.org/node/2992848 is fixed.
-  if (!$user->getEmail() && \Drupal::currentUser()->hasPermission('allow empty user mail')) {
+  if (isset($form['account']['mail']) && !$user->getEmail() && \Drupal::currentUser()->hasPermission('allow empty user mail')) {
     $form['account']['mail']['#required'] = FALSE;
   }
 
-  if (administerusersbyrole_user_access($user, 'update', $account)->isAllowed()) {
+  if (isset($form['account']['roles']['#options']) && administerusersbyrole_user_access($user, 'update', $account)->isAllowed()) {
     $allowed = \Drupal::service('administerusersbyrole.access')->listRoles('role-assign', $account);
     $options = array_intersect_key($form['account']['roles']['#options'], array_flip($allowed));
     $form['account']['roles']['#options'] = $options;
