diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb
index 9c4f86144d8489e1997a39ee6e505ee0a3d0809a..4bb4211dfe382d0dacaaa58dc1cef9b03194086e 100644
--- a/app/models/commit_status.rb
+++ b/app/models/commit_status.rb
@@ -70,9 +70,8 @@ class CommitStatus < ActiveRecord::Base
     end
 
     after_transition do |commit_status, transition|
-      commit_status.pipeline.tap do |pipeline|
-        return if transition.loopback?
-        return unless pipeline
+      commit_status.pipeline.try do |pipeline|
+        return false if transition.loopback?
 
         if commit_status.complete?
           ProcessPipelineWorker.perform_async(pipeline.id)
diff --git a/spec/models/project_services/hipchat_service_spec.rb b/spec/models/project_services/hipchat_service_spec.rb
index cf713684463e203fcecca6cdd8aa39393f4277ee..26dd95bdfec64808069ef327ee1c6cb64cb88760 100644
--- a/spec/models/project_services/hipchat_service_spec.rb
+++ b/spec/models/project_services/hipchat_service_spec.rb
@@ -283,7 +283,7 @@ describe HipchatService, models: true do
     context 'build events' do
       let(:pipeline) { create(:ci_empty_pipeline) }
       let(:build) { create(:ci_build, pipeline: pipeline) }
-      let(:data) { Gitlab::DataBuilder::Build.build(build) }
+      let(:data) { Gitlab::DataBuilder::Build.build(build.reload) }
 
       context 'for failed' do
         before { build.drop }