diff --git a/api.go b/api.go
index 564dc8b..ef1d3ba 100644
--- a/api.go
+++ b/api.go
@@ -376,8 +376,8 @@
 	reqBody := &registerBody{}
 	err = json.Unmarshal(bodyBytes, reqBody)
 	if err != nil {
-		log.Errorf("apiPutRegister error: %v", err)
-		a.writeError(w, http.StatusInternalServerError, API_ERR_INTERNAL, "Failed to read request body.")
+		log.Debugf("apiPutRegister error: %v", err)
+		a.writeError(w, http.StatusBadRequest, API_ERR_INVALID_PARAMETERS, "Failed to read request body json: "+err.Error())
 		return
 	}
 
@@ -416,8 +416,8 @@
 	reqBody := &configStatusBody{}
 	err = json.Unmarshal(bodyBytes, reqBody)
 	if err != nil {
-		log.Errorf("apiPutConfigStatus error: %v", err)
-		a.writeError(w, http.StatusInternalServerError, API_ERR_INTERNAL, "Failed to read request body.")
+		log.Debugf("apiPutConfigStatus error: %v", err)
+		a.writeError(w, http.StatusBadRequest, API_ERR_INVALID_PARAMETERS, "Failed to read request body json: "+err.Error())
 		return
 	}
 
diff --git a/api_test.go b/api_test.go
index 4cf93c0..86b3f76 100644
--- a/api_test.go
+++ b/api_test.go
@@ -278,7 +278,7 @@
 		})
 	})
 
-	FContext("Tracking endpoints", func() {
+	Context("Tracking endpoints", func() {
 		var dummyClient *dummyTrackerClient
 		var testClient *http.Client
 
@@ -525,6 +525,49 @@
 				}
 			})
 
+			It("/configurations/status should reject invalid json, and marshal valid fields", func() {
+				// setup test data
+				dummyClient.code = http.StatusOK
+				testData := []string{
+					"invalid-json",
+					`{"serviceId":"8eebdb60-be68-4380-a902-8cd0a2a0744c",
+					"reportedTime":"2017-08-09T13:30:03.987-07:00"}`,
+					`{"invalid-field1":"8eebdb60-be68-4380-a902-8cd0a2a0744c",
+					"invalid-field2":"2017-08-09T13:30:03.987-07:00"}`,
+				}
+
+				expectedCode := []int{
+					http.StatusBadRequest,
+					http.StatusOK,
+					http.StatusBadRequest,
+				}
+
+				expectedBody := []string{
+					"json",
+					"",
+					"",
+				}
+
+				// setup http client
+				uri, err := url.Parse(apiTestUrl)
+				Expect(err).Should(Succeed())
+				for i, data := range testData {
+					uri.Path = testApiMan.configStatusEndpoint
+					log.Debug(uri.String(), data)
+					req, err := http.NewRequest("PUT", uri.String(), strings.NewReader(data))
+					Expect(err).Should(Succeed())
+					// http put
+					res, err := testClient.Do(req)
+					Expect(err).Should(Succeed())
+					// parse response
+					defer res.Body.Close()
+					Expect(res.StatusCode).Should(Equal(expectedCode[i]))
+					body, err := ioutil.ReadAll(res.Body)
+					Expect(err).Should(Succeed())
+					Expect(strings.Contains(strings.ToLower(string(body)), strings.ToLower(expectedBody[i]))).To(BeTrue())
+				}
+			})
+
 			It("/configurations/status should populate errors from tracker", func() {
 				// setup test data
 				testData := [][]string{
@@ -804,7 +847,6 @@
 }
 
 func generateStatusDetails(flag int) (*statusDetailsJson, string) {
-	log.Warnf("flag: %v", flag)
 	id := GenerateUUID()
 	var ret *statusDetailsJson
 	var expected string
