diff --git a/spec/controllers/autocomplete_controller_spec.rb b/spec/controllers/autocomplete_controller_spec.rb
index 6ccba866ebb503d690a9e6ecf9e8b2a4f62032bb..533d3896ee634b55d13a67fc16d355ea16e077dd 100644
--- a/spec/controllers/autocomplete_controller_spec.rb
+++ b/spec/controllers/autocomplete_controller_spec.rb
@@ -4,7 +4,7 @@
 
 RSpec.describe AutocompleteController do
   let(:project) { create(:project) }
-  let(:user) { project.owner }
+  let(:user) { project.first_owner }
 
   context 'GET users' do
     let!(:user2) { create(:user) }
diff --git a/spec/controllers/projects/artifacts_controller_spec.rb b/spec/controllers/projects/artifacts_controller_spec.rb
index 754b0ddfb94a6021554bc8574a39b50942fdc55e..f410c16b30b23c4e4ce3c95cbe24693a655684f8 100644
--- a/spec/controllers/projects/artifacts_controller_spec.rb
+++ b/spec/controllers/projects/artifacts_controller_spec.rb
@@ -5,7 +5,7 @@
 RSpec.describe Projects::ArtifactsController do
   include RepoHelpers
 
-  let(:user) { project.owner }
+  let(:user) { project.first_owner }
   let_it_be(:project) { create(:project, :repository, :public) }
 
   let_it_be(:pipeline, reload: true) do
diff --git a/spec/controllers/projects/avatars_controller_spec.rb b/spec/controllers/projects/avatars_controller_spec.rb
index 35878fe4c2d403e21fb99f8b6ab8f1da3844b6c9..39a373ed6b68b0a7cce636e579f4cf554ad91fb3 100644
--- a/spec/controllers/projects/avatars_controller_spec.rb
+++ b/spec/controllers/projects/avatars_controller_spec.rb
@@ -38,7 +38,7 @@
         end
 
         it 'sets appropriate caching headers' do
-          sign_in(project.owner)
+          sign_in(project.first_owner)
           subject
 
           expect(response.cache_control[:public]).to eq(true)
@@ -63,7 +63,7 @@
     let(:project) { create(:project, :repository, avatar: fixture_file_upload("spec/fixtures/dk.png", "image/png")) }
 
     before do
-      sign_in(project.owner)
+      sign_in(project.first_owner)
     end
 
     it 'removes avatar from DB by calling destroy' do
diff --git a/spec/controllers/projects/hooks_controller_spec.rb b/spec/controllers/projects/hooks_controller_spec.rb
index 2ab18ccddbfa475f1b3ee48c2c9bbf52ef91ef3a..ebcf35a7ecd08eff23723b750ecefcf37580b923 100644
--- a/spec/controllers/projects/hooks_controller_spec.rb
+++ b/spec/controllers/projects/hooks_controller_spec.rb
@@ -5,7 +5,7 @@
 RSpec.describe Projects::HooksController do
   let_it_be(:project) { create(:project) }
 
-  let(:user) { project.owner }
+  let(:user) { project.first_owner }
 
   before do
     sign_in(user)
diff --git a/spec/controllers/projects/merge_requests/conflicts_controller_spec.rb b/spec/controllers/projects/merge_requests/conflicts_controller_spec.rb
index e07b7e4586a5f0a615893616dfc0b44afa6a3813..366a1e587ab954bf32f82b729ccd382594607d83 100644
--- a/spec/controllers/projects/merge_requests/conflicts_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests/conflicts_controller_spec.rb
@@ -4,7 +4,7 @@
 
 RSpec.describe Projects::MergeRequests::ConflictsController do
   let(:project) { create(:project, :repository) }
-  let(:user)    { project.owner }
+  let(:user)    { project.first_owner }
   let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) }
   let(:merge_request_with_conflicts) do
     create(:merge_request, source_branch: 'conflict-resolvable', target_branch: 'conflict-start', source_project: project, merge_status: :unchecked) do |mr|
diff --git a/spec/controllers/projects/merge_requests/creations_controller_spec.rb b/spec/controllers/projects/merge_requests/creations_controller_spec.rb
index df2023b7356d2ebad64c7f0a4ee06d91bd0cbc4b..3c650988b4f04a08ca79877d9f5300241a8247b2 100644
--- a/spec/controllers/projects/merge_requests/creations_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests/creations_controller_spec.rb
@@ -4,7 +4,7 @@
 
 RSpec.describe Projects::MergeRequests::CreationsController do
   let(:project) { create(:project, :repository) }
-  let(:user)    { project.owner }
+  let(:user)    { project.first_owner }
   let(:fork_project) { create(:forked_project_with_submodules) }
   let(:get_diff_params) do
     {
diff --git a/spec/controllers/projects/merge_requests/drafts_controller_spec.rb b/spec/controllers/projects/merge_requests/drafts_controller_spec.rb
index 580211893dc870775bd9b68b2f6e65647cffb414..222bb977beb62ce4ec9f86f1501bf9f17b9a18ee 100644
--- a/spec/controllers/projects/merge_requests/drafts_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests/drafts_controller_spec.rb
@@ -6,7 +6,7 @@
 
   let(:project)       { create(:project, :repository) }
   let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) }
-  let(:user)          { project.owner }
+  let(:user)          { project.first_owner }
   let(:user2)         { create(:user) }
 
   let(:params) do
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index 36b6df59ef5565f95608e2f52175b6e741685909..d20bb2b16e510579fde691e586dc8dfbb319803a 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -9,7 +9,7 @@
   let_it_be_with_refind(:project) { create(:project, :repository) }
   let_it_be_with_reload(:project_public_with_private_builds) { create(:project, :repository, :public, :builds_private) }
 
-  let(:user) { project.owner }
+  let(:user) { project.first_owner }
   let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: merge_request_source_project, allow_collaboration: false) }
   let(:merge_request_source_project) { project }
 
diff --git a/spec/controllers/projects/mirrors_controller_spec.rb b/spec/controllers/projects/mirrors_controller_spec.rb
index 7c5d14d3a22bb80becd4d42dec56af58e91695dc..7bc86d7c58389f9a13f4ae2196b2649e7541d1e6 100644
--- a/spec/controllers/projects/mirrors_controller_spec.rb
+++ b/spec/controllers/projects/mirrors_controller_spec.rb
@@ -7,7 +7,7 @@
 
   shared_examples 'only admin is allowed when mirroring is disabled' do
     let(:subject_action) { raise 'subject_action is required' }
-    let(:user) { project.owner }
+    let(:user) { project.first_owner }
     let(:project_settings_path) { project_settings_repository_path(project, anchor: 'js-push-remote-settings') }
 
     context 'when project mirroring is enabled' do
@@ -88,7 +88,7 @@
 
     context 'when the current project is not a mirror' do
       it 'allows to create a remote mirror' do
-        sign_in(project.owner)
+        sign_in(project.first_owner)
 
         expect do
           do_put(project, remote_mirrors_attributes: { '0' => { 'enabled' => 1, 'url' => 'http://foo.com' } })
@@ -106,7 +106,7 @@
       end
 
       it 'processes a successful update' do
-        sign_in(project.owner)
+        sign_in(project.first_owner)
         do_put(project, remote_mirrors_attributes: { '0' => ssh_mirror_attributes })
 
         expect(response).to redirect_to(project_settings_repository_path(project, anchor: 'js-push-remote-settings'))
@@ -126,7 +126,7 @@
     let(:project) { create(:project, :repository, :remote_mirror) }
 
     before do
-      sign_in(project.owner)
+      sign_in(project.first_owner)
     end
 
     context 'With valid URL for a push' do
@@ -169,7 +169,7 @@
     let(:cache) { SshHostKey.new(project: project, url: "ssh://example.com:22") }
 
     before do
-      sign_in(project.owner)
+      sign_in(project.first_owner)
     end
 
     context 'invalid URLs' do
diff --git a/spec/controllers/projects/pipelines_controller_spec.rb b/spec/controllers/projects/pipelines_controller_spec.rb
index 3fe709a0d442315bc147fe7915726103e300a3ea..4a51e2ed5a086f653ec58943b9dd57b42a51d554 100644
--- a/spec/controllers/projects/pipelines_controller_spec.rb
+++ b/spec/controllers/projects/pipelines_controller_spec.rb
@@ -1169,7 +1169,7 @@ def clear_controller_memoization
 
     context 'when user has ability to delete pipeline' do
       before do
-        sign_in(project.owner)
+        sign_in(project.first_owner)
       end
 
       it 'deletes pipeline and redirects' do
diff --git a/spec/controllers/projects/service_ping_controller_spec.rb b/spec/controllers/projects/service_ping_controller_spec.rb
index e6afaadc75f405db5ba5e0ea418af63661929029..729488cc86eee0171c6563631ed4be4c0953ae30 100644
--- a/spec/controllers/projects/service_ping_controller_spec.rb
+++ b/spec/controllers/projects/service_ping_controller_spec.rb
@@ -32,7 +32,7 @@
 
   shared_examples 'counter is increased' do |counter|
     context 'when the authenticated user has access to the project' do
-      let(:user) { project.owner }
+      let(:user) { project.first_owner }
 
       it 'increments the usage counter' do
         expect do
@@ -55,7 +55,7 @@
     end
 
     context 'when web ide clientside preview is not enabled' do
-      let(:user) { project.owner }
+      let(:user) { project.first_owner }
 
       before do
         stub_application_setting(web_ide_clientside_preview_enabled: false)
diff --git a/spec/controllers/repositories/git_http_controller_spec.rb b/spec/controllers/repositories/git_http_controller_spec.rb
index 4a6e745cd63e5753bc4fb945929677ca54533068..fb2637238ec16ef0d58b853636987eb6e53c4a71 100644
--- a/spec/controllers/repositories/git_http_controller_spec.rb
+++ b/spec/controllers/repositories/git_http_controller_spec.rb
@@ -29,7 +29,7 @@
   context 'when repository container is a project' do
     it_behaves_like Repositories::GitHttpController do
       let(:container) { project }
-      let(:user) { project.owner }
+      let(:user) { project.first_owner }
       let(:access_checker_class) { Gitlab::GitAccess }
 
       it_behaves_like 'handles unavailable Gitaly'
@@ -103,7 +103,7 @@ def send_request
   context 'when repository container is a project wiki' do
     it_behaves_like Repositories::GitHttpController do
       let(:container) { create(:project_wiki, :empty_repo, project: project) }
-      let(:user) { project.owner }
+      let(:user) { project.first_owner }
       let(:access_checker_class) { Gitlab::GitAccessWiki }
     end
   end
diff --git a/spec/graphql/features/authorization_spec.rb b/spec/graphql/features/authorization_spec.rb
index faf1910473188334627aae01d36ca77cc08e1f54..514f63a6f5a2390d55af5b2381ca5d42ef51726b 100644
--- a/spec/graphql/features/authorization_spec.rb
+++ b/spec/graphql/features/authorization_spec.rb
@@ -326,7 +326,7 @@
     let!(:other_project) { create(:project, :private) }
     let!(:visible_issues) { create_list(:issue, 2, project: visible_project) }
     let!(:other_issues) { create_list(:issue, 2, project: other_project) }
-    let!(:user) { visible_project.owner }
+    let!(:user) { visible_project.first_owner }
 
     let(:issue_type) do
       type_factory do |type|
diff --git a/spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb b/spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb
index 8ec99070c9162a20e40b701a9c214bd5f9e70725..ea5e21ec4b8b0b6c2c1d3e54d0a0577bc7407704 100644
--- a/spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb
+++ b/spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb
@@ -8,7 +8,7 @@
   let_it_be(:alert) { create(:alert_management_alert) }
   let_it_be(:project) { alert.project }
 
-  let(:current_user) { project.owner }
+  let(:current_user) { project.first_owner }
 
   let(:args) { { project_path: project.full_path, iid: alert.iid } }
 
diff --git a/spec/graphql/mutations/issues/create_spec.rb b/spec/graphql/mutations/issues/create_spec.rb
index 825d04ff8273b073e853af48fe458dcc96d5020a..e3094e847034e5068488f74a7721b74bda5b6c31 100644
--- a/spec/graphql/mutations/issues/create_spec.rb
+++ b/spec/graphql/mutations/issues/create_spec.rb
@@ -121,7 +121,7 @@ def resolve
       end
 
       context 'when creating an issue as owner' do
-        let_it_be(:user) { project.owner }
+        let_it_be(:user) { project.first_owner }
 
         before do
           mutation_params.merge!(special_params)
diff --git a/spec/graphql/resolvers/package_details_resolver_spec.rb b/spec/graphql/resolvers/package_details_resolver_spec.rb
index d6acb31d4e36341a8332d610d061d0d513ca4089..c8ee489a034e6cf39f105604b11bd556c370c76e 100644
--- a/spec/graphql/resolvers/package_details_resolver_spec.rb
+++ b/spec/graphql/resolvers/package_details_resolver_spec.rb
@@ -6,7 +6,7 @@
   include GraphqlHelpers
 
   let_it_be_with_reload(:project) { create(:project) }
-  let_it_be(:user) { project.owner }
+  let_it_be(:user) { project.first_owner }
   let_it_be(:package) { create(:composer_package, project: project) }
 
   describe '#resolve' do
diff --git a/spec/graphql/resolvers/package_pipelines_resolver_spec.rb b/spec/graphql/resolvers/package_pipelines_resolver_spec.rb
index d48d4d8ae01b1736ad90cfe68ccc88ab9ad3c89d..024f96e71583f9939cff9b44cb40c3fc6ccd893e 100644
--- a/spec/graphql/resolvers/package_pipelines_resolver_spec.rb
+++ b/spec/graphql/resolvers/package_pipelines_resolver_spec.rb
@@ -8,7 +8,7 @@
   let_it_be_with_reload(:package) { create(:package) }
   let_it_be(:pipelines) { create_list(:ci_pipeline, 3, project: package.project) }
 
-  let(:user) { package.project.owner }
+  let(:user) { package.project.first_owner }
   let(:args) { {} }
 
   describe '#resolve' do
diff --git a/spec/graphql/types/global_id_type_spec.rb b/spec/graphql/types/global_id_type_spec.rb
index 4efa3018dada5874ae7df8fc463215f61649ec71..e7e69cfad9e0c804d2157c8f48e022fe94c24447 100644
--- a/spec/graphql/types/global_id_type_spec.rb
+++ b/spec/graphql/types/global_id_type_spec.rb
@@ -191,7 +191,7 @@
 
       describe 'executing against the schema' do
         let(:query_result) do
-          context = { current_user: issue.project.owner }
+          context = { current_user: issue.project.first_owner }
           variables = { 'id' => gid }
 
           run_with_clean_state(query, context: context, variables: variables).to_h