diff --git a/CHANGELOG b/CHANGELOG
index fc7b6e75b1dac065c4c0f67559c5a4dbd018b40f..eb5badf6a96dae2b15a67ee88f8dc0c137aca0a7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,10 @@ Please view this file on the master branch, on stable branches it's out of date.
 v 8.3.0 (unreleased)
   - Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera)
 
+v 8.2.1
+  - Forcefully update builds that didn't want to update with state machine
+  - Fix: saving GitLabCiService as Admin Template
+
 v 8.2.0
   - Improved performance of finding projects and groups in various places
   - Improved performance of rendering user profile pages and Atom feeds
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index e78b154084b014cc4c773b7f42b9a12c4c163624..52ce1b920fae151f74b51a208da58cd6bf3b08f1 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -97,6 +97,8 @@ module Ci
 
     state_machine :status, initial: :pending do
       after_transition any => [:success, :failed, :canceled] do |build, transition|
+        return unless build.gl_project
+
         project = build.project
 
         if project.web_hooks?
diff --git a/app/models/project_services/gitlab_ci_service.rb b/app/models/project_services/gitlab_ci_service.rb
index 095d04e0df4c0a2959e796d849ab583cdfa487c8..c5657b5070edc8c2f1e018dd7a27eb77bb4e32df 100644
--- a/app/models/project_services/gitlab_ci_service.rb
+++ b/app/models/project_services/gitlab_ci_service.rb
@@ -30,6 +30,7 @@ class GitlabCiService < CiService
   end
 
   def ensure_gitlab_ci_project
+    return unless project
     project.ensure_gitlab_ci_project
   end
 
diff --git a/app/workers/stuck_ci_builds_worker.rb b/app/workers/stuck_ci_builds_worker.rb
index ad02a3b16d953b46eb5901e2be171a2211aa4382..4e5eddbaba1c68a8de1717eac0dab0f075544c56 100644
--- a/app/workers/stuck_ci_builds_worker.rb
+++ b/app/workers/stuck_ci_builds_worker.rb
@@ -14,5 +14,8 @@ class StuckCiBuildsWorker
       Rails.logger.debug "Dropping stuck #{build.status} build #{build.id} for runner #{build.runner_id}"
       build.drop
     end
+
+    # Update builds that failed to drop
+    builds.update_all(status: 'failed')
   end
 end