diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/HealthCheckRestControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/HealthCheckRestControllerV1.java
index 896f2aa..2687a30 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/HealthCheckRestControllerV1.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/HealthCheckRestControllerV1.java
@@ -53,7 +53,8 @@
         @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
         @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)})
     public ResponseEntity<HealthCheckReport> healthcheck() {
-        return ResponseEntity.ok().body(provider.performHealthCheck(true));
+        var report = provider.performHealthCheck(true);
+        return ResponseEntity.status(report.getCode()).body(report);
     }
 
 }
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/TestHealthCheckRestControllerV1.java b/main/src/test/java/org/onap/policy/pap/main/rest/TestHealthCheckRestControllerV1.java
index bc97c63..359f9cb 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/TestHealthCheckRestControllerV1.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/TestHealthCheckRestControllerV1.java
@@ -22,6 +22,7 @@
 
 package org.onap.policy.pap.main.rest;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.when;
 
@@ -64,7 +65,9 @@
         markActivatorDead();
 
         final Invocation.Builder invocationBuilder = sendRequest(HEALTHCHECK_ENDPOINT);
-        final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
+        var response = invocationBuilder.get();
+        var report = response.readEntity(HealthCheckReport.class);
+        assertThat(response.getStatus()).isEqualTo(503);
         validateHealthCheckReport(NAME, SELF, false, 503, NOT_ALIVE, report);
     }
 
@@ -72,7 +75,9 @@
     public void testHealthCheckDbConnectionFailure() throws Exception {
         when(policyStatusProvider.getPolicyStatus()).thenThrow(PfModelRuntimeException.class);
         final Invocation.Builder invocationBuilder = sendRequest(HEALTHCHECK_ENDPOINT);
-        final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
+        var response = invocationBuilder.get();
+        var report = response.readEntity(HealthCheckReport.class);
+        assertThat(response.getStatus()).isEqualTo(503);
         validateHealthCheckReport(NAME, SELF, false, 503, NOT_ALIVE, report);
     }
 
