diff --git a/app/services/issues/base_service.rb b/app/services/issues/base_service.rb
index 9f6cfc0f6d39eb3ddfd95ae332abcbf4e663dc61..cbfef175af0421dcecefe7903707204a771575d1 100644
--- a/app/services/issues/base_service.rb
+++ b/app/services/issues/base_service.rb
@@ -32,8 +32,9 @@ def execute_hooks(issue, action = 'open', old_associations: {})
     def filter_assignee(issuable)
       return if params[:assignee_ids].blank?
 
-      # The number of assignees is limited by one for GitLab CE
-      params[:assignee_ids] = params[:assignee_ids][0, 1]
+      unless issuable.allows_multiple_assignees?
+        params[:assignee_ids] = params[:assignee_ids].take(1)
+      end
 
       assignee_ids = params[:assignee_ids].select { |assignee_id| assignee_can_read?(issuable, assignee_id) }