diff --git a/changelog/unreleased/enhancement-admin-settings-users-role-graph-api-usage b/changelog/unreleased/enhancement-admin-settings-users-role-graph-api-usage
index 7bbbce2d5e7..ecf6b052251 100644
--- a/changelog/unreleased/enhancement-admin-settings-users-role-graph-api-usage
+++ b/changelog/unreleased/enhancement-admin-settings-users-role-graph-api-usage
@@ -4,3 +4,5 @@ We've switched over to utilizing user role assignments data from the graph api i
 Especially for the list view this leads to improved performance.
 
 https://github.com/owncloud/web/pull/8261
+https://github.com/owncloud/web/pull/8322
+https://github.com/owncloud/web/issues/8319
diff --git a/packages/web-app-admin-settings/src/components/Users/SideBar/EditPanel.vue b/packages/web-app-admin-settings/src/components/Users/SideBar/EditPanel.vue
index d2b48c63845..bc8fd5bd41a 100644
--- a/packages/web-app-admin-settings/src/components/Users/SideBar/EditPanel.vue
+++ b/packages/web-app-admin-settings/src/components/Users/SideBar/EditPanel.vue
@@ -123,7 +123,7 @@ export default defineComponent({
     const groupOptions = computed(() => {
       const { memberOf: selectedGroups } = unref(editUser)
       return props.groups
-        .filter((g) => !selectedGroups.some((s) => s.id === g.id))
+        .filter((g) => !selectedGroups?.some((s) => s.id === g.id))
         .sort((a, b) => a.displayName.localeCompare(b.displayName))
     })
 
diff --git a/packages/web-app-admin-settings/src/views/Users.vue b/packages/web-app-admin-settings/src/views/Users.vue
index a4b8274514c..ae7f372f250 100644
--- a/packages/web-app-admin-settings/src/views/Users.vue
+++ b/packages/web-app-admin-settings/src/views/Users.vue
@@ -437,13 +437,15 @@ export default defineComponent({
       }
     },
     async updateUserGroupAssignments(user, editUser) {
-      const groupsToAdd = editUser.memberOf.filter((editUserGroup) => {
-        return !user.memberOf.some((g) => g.id === editUserGroup.id)
-      })
-
-      const groupsToDelete = user.memberOf.filter((editUserGroup) => {
-        return !editUser.memberOf.some((g) => g.id === editUserGroup.id)
-      })
+      const groupsToAdd =
+        editUser.memberOf?.filter((editUserGroup) => {
+          return !user.memberOf?.some((g) => g.id === editUserGroup.id)
+        }) || []
+
+      const groupsToDelete =
+        user.memberOf?.filter((editUserGroup) => {
+          return !editUser.memberOf?.some((g) => g.id === editUserGroup.id)
+        }) || []
 
       for (const groupToAdd of groupsToAdd) {
         await this.graphClient.groups.addMember(groupToAdd.id, user.id, this.configuration.server)