This is an automated email from the ASF dual-hosted git repository.

tenthe pushed a commit to branch 
4479-reset-endpoint-fails-when-pipeline-has-missing-health-status
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 3756632ddaa519b795e59825effec6400aea93fd
Author: Philipp Zehnder <[email protected]>
AuthorDate: Mon May 18 10:08:20 2026 +0200

    fix(#4479): handle missing pipeline health status during reset
---
 .../manager/execution/task/StorePipelineStatusTask.java    | 14 +++++++++++++-
 .../streampipes/manager/pipeline/PipelineManager.java      |  2 ++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git 
a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/task/StorePipelineStatusTask.java
 
b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/task/StorePipelineStatusTask.java
index 2797c77ebc..e5f465190c 100644
--- 
a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/task/StorePipelineStatusTask.java
+++ 
b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/task/StorePipelineStatusTask.java
@@ -80,10 +80,22 @@ public class StorePipelineStatusTask implements 
PipelineExecutionTask {
     pipeline.setRunning(false);
     
pipelinesStats.updatePipelineRunningState(pipeline.getElementId(),pipeline.getName()
                                                                   , false);
-    
pipelinesStats.updatePipelineHealthState(pipeline.getElementId(),pipeline.getName(),
 pipeline.getHealthStatus().toString());
+    pipelinesStats.updatePipelineHealthState(
+        pipeline.getElementId(),
+        pipeline.getName(),
+        getHealthStatus(pipeline).toString()
+    );
     getPipelineStorageApi().updateElement(pipeline);
   }
 
+  private PipelineHealthStatus getHealthStatus(Pipeline pipeline) {
+    if (pipeline.getHealthStatus() == null) {
+      pipeline.setHealthStatus(PipelineHealthStatus.OK);
+    }
+
+    return pipeline.getHealthStatus();
+  }
+
   private IPipelineStorage getPipelineStorageApi() {
     return StorageDispatcher.INSTANCE.getNoSqlStore().getPipelineStorageAPI();
   }
diff --git 
a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/pipeline/PipelineManager.java
 
b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/pipeline/PipelineManager.java
index 0da4b65eca..23bbfec454 100644
--- 
a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/pipeline/PipelineManager.java
+++ 
b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/pipeline/PipelineManager.java
@@ -26,6 +26,7 @@ import 
org.apache.streampipes.manager.storage.PipelineStorageService;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.client.user.Permission;
 import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineHealthStatus;
 import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
 import org.apache.streampipes.resource.management.CrudResourceManager;
 import org.apache.streampipes.storage.api.pipeline.IPipelineStorage;
@@ -181,6 +182,7 @@ public class PipelineManager {
   ) {
     pipeline.setPipelineId(pipelineId);
     pipeline.setRunning(false);
+    pipeline.setHealthStatus(PipelineHealthStatus.OK);
     pipeline.setCreatedByUser(username);
     pipeline.setCreatedAt(new Date().getTime());
     pipeline.getSepas()

Reply via email to