diff --git a/backend/open_webui/models/groups.py b/backend/open_webui/models/groups.py index 6615f95142..2c8d626782 100644 --- a/backend/open_webui/models/groups.py +++ b/backend/open_webui/models/groups.py @@ -288,13 +288,16 @@ class GroupTable: if not group: return None - if not group.user_ids: - group.user_ids = [] + group_user_ids = group.user_ids + + if not group_user_ids or not isinstance(group_user_ids, list): + group_user_ids = [] for user_id in user_ids: - if user_id not in group.user_ids: - group.user_ids.append(user_id) + if user_id not in group_user_ids: + group_user_ids.append(user_id) + group.user_ids = group_user_ids group.updated_at = int(time.time()) db.commit() db.refresh(group) @@ -312,14 +315,18 @@ class GroupTable: if not group: return None - if not group.user_ids: + group_user_ids = group.user_ids + + if not group_user_ids or not isinstance(group_user_ids, list): return GroupModel.model_validate(group) for user_id in user_ids: - if user_id in group.user_ids: - group.user_ids.remove(user_id) + if user_id in group_user_ids: + group_user_ids.remove(user_id) + group.user_ids = group_user_ids group.updated_at = int(time.time()) + db.commit() db.refresh(group) return GroupModel.model_validate(group)