diff --git a/nomad/state/state_store.go b/nomad/state/state_store.go index e7edc1db07c..91e11f65c36 100644 --- a/nomad/state/state_store.go +++ b/nomad/state/state_store.go @@ -3545,11 +3545,17 @@ func (s *StateStore) updateSummaryWithAlloc(index uint64, alloc *structs.Allocat // Decrementing the count of the bin of the last state switch existingAlloc.ClientStatus { case structs.AllocClientStatusRunning: - tgSummary.Running -= 1 + if tgSummary.Running > 0 { + tgSummary.Running -= 1 + } case structs.AllocClientStatusPending: - tgSummary.Starting -= 1 + if tgSummary.Starting > 0 { + tgSummary.Starting -= 1 + } case structs.AllocClientStatusLost: - tgSummary.Lost -= 1 + if tgSummary.Lost > 0 { + tgSummary.Lost -= 1 + } case structs.AllocClientStatusFailed, structs.AllocClientStatusComplete: default: s.logger.Printf("[ERR] state_store: invalid old state of allocation with id: %v, and state: %v",