         {:keys [build-num project-name]} context
         {:keys [org repo vcs_type]} (state/navigation-data current-state)
         {:keys [read-settings]} scopes
-        plan-url (gstring/format "/api/v1.1/project/%s/%s/plan" vcs_type project-name)]
+        plan-url (gstring/format "/api/v1.1/project/%s/%s/plan" vcs_type project-name)
+        build-changed? (not (= (-> previous-state :current-build-data) (-> current-state :current-build-data)))]
     ;; This is slightly different than the api-event because we don't want to have to
     ;; convert the build from steps to containers again.
     (analytics/track {:event-type :view-build

               (= project-name (vcs-url/project-name (get-in args [:resp :vcs_url]))))
      (fetch-visible-output current-state comms build-num (get-in args [:resp :vcs_url]))
      (frontend.favicon/set-color! (build-model/favicon-color (get-in current-state state/build-path)))
      (maybe-set-containers-filter! current-state comms))))

(defmethod api-event [:cancel-build :success]
  [target message status {:keys [context resp]} state]

(defn maybe-set-containers-filter!
  "Depending on the status and outcome of the build, set active
  container filter to failed."
  [state comms build-changed?]
  (let [build (get-in state state/build-path)
        containers (get-in state state/containers-path)
        build-running? (not (build-model/finished? build))
