diff --git a/http-task/src/main/java/com/netflix/conductor/tasks/http/HttpTask.java b/http-task/src/main/java/com/netflix/conductor/tasks/http/HttpTask.java index 8a0145a25..942ae234a 100644 --- a/http-task/src/main/java/com/netflix/conductor/tasks/http/HttpTask.java +++ b/http-task/src/main/java/com/netflix/conductor/tasks/http/HttpTask.java @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -118,7 +119,9 @@ public void start(WorkflowModel workflow, TaskModel task, WorkflowExecutor execu if (response.body != null) { task.setReasonForIncompletion(response.body.toString()); } else { - task.setReasonForIncompletion("No response from the remote service"); + task.setReasonForIncompletion( + Objects.requireNonNullElse( + response.reasonPhrase, "No response from the remote service")); } task.setStatus(TaskModel.Status.FAILED); } @@ -182,11 +185,11 @@ protected HttpResponse httpCall(Input input) throws Exception { response.headers = responseEntity.getHeaders(); return response; } catch (HttpClientErrorException ex) { - response.headers = ex.getResponseHeaders(); - response.statusCode = ex.getStatusCode().value(); - response.reasonPhrase = ex.getStatusText(); - return response; - } catch (RestClientException ex) { + response.headers = ex.getResponseHeaders(); + response.statusCode = ex.getStatusCode().value(); + response.reasonPhrase = ex.getStatusText(); + return response; + } catch (RestClientException ex) { LOGGER.error( String.format( "Got unexpected http response - uri: %s, vipAddress: %s",