diff --git a/app/models/service.rb b/app/models/service.rb
index 1d259bcfec78af6ea123e7d35c3e853fec29951f..ad835293b46d4e8b753267b4f52bc80116bc3754 100644
--- a/app/models/service.rb
+++ b/app/models/service.rb
@@ -281,9 +281,9 @@ def self.available_services_names
 
   def self.build_from_template(project_id, template)
     service = template.dup
-    service.active = false unless service.valid?
     service.template = false
     service.project_id = project_id
+    service.active = false if service.active? && !service.valid?
     service
   end
 
diff --git a/spec/models/service_spec.rb b/spec/models/service_spec.rb
index 28c908ea4258aa71bbdf8359db4c3b33d253c52f..a849af062c5e16193fe5b979e32de817c285cc23 100644
--- a/spec/models/service_spec.rb
+++ b/spec/models/service_spec.rb
@@ -78,7 +78,7 @@
       context 'when template is invalid' do
         it 'sets service template to inactive when template is invalid' do
           project = create(:project)
-          template = JiraService.new(template: true, active: true)
+          template = KubernetesService.new(template: true, active: true)
           template.save(validate: false)
 
           service = described_class.build_from_template(project.id, template)