diff --git a/xyz-jobs/xyz-job-service/src/main/java/com/here/xyz/jobs/Job.java b/xyz-jobs/xyz-job-service/src/main/java/com/here/xyz/jobs/Job.java index 49be8ea587..37a795f1cb 100644 --- a/xyz-jobs/xyz-job-service/src/main/java/com/here/xyz/jobs/Job.java +++ b/xyz-jobs/xyz-job-service/src/main/java/com/here/xyz/jobs/Job.java @@ -379,6 +379,7 @@ private Future updateStep(Step step, State previousStepState, boolean canc getStatus().setEstimatedProgress((float) completedWorkUnits / (float) overallWorkUnits); //Update the job's state if applicable + State previousJobState = getStatus().getState(); if (previousStepState != FAILED && step.getStatus().getState() == FAILED) { getStatus() .withState(FAILED) @@ -388,7 +389,7 @@ private Future updateStep(Step step, State previousStepState, boolean canc } return storeUpdatedStep(step) - .compose(v -> storeStatus(null)) + .compose(v -> storeStatus(previousJobState)) .compose(v -> getStatus().getState() == FAILED && cancelOnFailure ? JobExecutor.getInstance().cancel(getExecutionId(), "Cancelled due to failed step \"" + step.getId() + "\"") .recover(t -> {