diff --git a/app/services/projects/import_service.rb b/app/services/projects/import_service.rb
index e466ffa60eb6241b0fa7f9aacb451366d9aeca4d..d7221fe993c145059191eabe78eb43b1d18b8087 100644
--- a/app/services/projects/import_service.rb
+++ b/app/services/projects/import_service.rb
@@ -29,7 +29,7 @@ module Projects
       if unknown_url?
         # In this case, we only want to import issues, not a repository.
         create_repository
-      else
+      elsif !project.repository_exists?
         import_repository
       end
     end
diff --git a/spec/services/projects/import_service_spec.rb b/spec/services/projects/import_service_spec.rb
index ed1384798ab22e6c061aac6b97e6af647861dc88..ab6e8f537bac91e1f6d89c55adf0c848eacae554 100644
--- a/spec/services/projects/import_service_spec.rb
+++ b/spec/services/projects/import_service_spec.rb
@@ -110,7 +110,7 @@ describe Projects::ImportService, services: true do
       end
 
       it 'expires existence cache after error' do
-        allow_any_instance_of(Project).to receive(:repository_exists?).and_return(true)
+        allow_any_instance_of(Project).to receive(:repository_exists?).and_return(false, true)
 
         expect_any_instance_of(Gitlab::Shell).to receive(:import_repository).with(project.repository_storage_path, project.path_with_namespace, project.import_url).and_raise(Gitlab::Shell::Error.new('Failed to import the repository'))
         expect_any_instance_of(Repository).to receive(:expire_emptiness_caches).and_call_original