diff --git a/api/http/handler/edgestacks/edgestack_status_update.go b/api/http/handler/edgestacks/edgestack_status_update.go index fc8ea8018..4cf912030 100644 --- a/api/http/handler/edgestacks/edgestack_status_update.go +++ b/api/http/handler/edgestacks/edgestack_status_update.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "net/http" + "slices" "strconv" "time" @@ -136,7 +137,11 @@ func updateEnvStatus(environmentId portainer.EndpointID, stack *portainer.EdgeSt } } - environmentStatus.Status = append(environmentStatus.Status, deploymentStatus) + if containsStatus := slices.ContainsFunc(environmentStatus.Status, func(e portainer.EdgeStackDeploymentStatus) bool { + return e.Type == deploymentStatus.Type + }); !containsStatus { + environmentStatus.Status = append(environmentStatus.Status, deploymentStatus) + } stack.Status[environmentId] = environmentStatus }