diff --git a/endpoints/client.py b/endpoints/client.py
index 60fca56afc86212b9b258010992071dcd1d280ff..0f42fea2dc1eb095a34ba1b328fa6c7d06bfe0af 100644
--- a/endpoints/client.py
+++ b/endpoints/client.py
@@ -1,11 +1,14 @@
-from flask_restful import Resource, request, abort
+import logging
+
+from flask_restful import Resource, abort, request
 from marshmallow import Schema, fields
-import json
-import os
-import random
-import string
+from werkzeug.exceptions import BadRequest
+
 from models.client_model import ClientModel
 
+logging.basicConfig(level=logging.INFO)
+logging.getLogger("pika").setLevel(logging.ERROR)
+
 
 class ClientSchema(Schema):
     client_id = fields.Str(required=True)
@@ -37,7 +40,11 @@ class Client(Resource):
         return client, 204
 
     def put(self, client_id):
-        args = request.get_json()
+        try:
+            args = request.get_json()
+        except BadRequest:
+            abort(400, message="POSTed body is invalid JSON")
+
         errors = self.schema.validate(args)
         if errors:
             abort(400, message=str(errors))
@@ -63,7 +70,10 @@ class ClientList(Resource):
         }
 
     def post(self):
-        args = request.get_json()
+        try:
+            args = request.get_json()
+        except BadRequest:
+            abort(400, message="POSTed body is invalid JSON")
 
         errors = self.schema.validate(args)
         if errors:
@@ -71,7 +81,7 @@ class ClientList(Resource):
 
         client = self.clients_file.find(args["client_id"])
         if client:
-            abort(403, message="Duplicate client id: {}".format(client_id))
+            abort(409, message="Duplicate client id: {}".format(args["client_id"]))
         else:
             client = self.clients_file.add(args)
         return client, 201
diff --git a/endpoints/notify.py b/endpoints/notify.py
index dff460e28d8a00fc1d36e56aca89e9378aed3de0..f3dd916a3f6d162a320cf9a335e7d9b8f265e9e3 100644
--- a/endpoints/notify.py
+++ b/endpoints/notify.py
@@ -2,6 +2,7 @@ import json
 
 from flask_restful import abort, request
 from marshmallow import Schema, fields
+from werkzeug.exceptions import BadRequest
 
 from endpoints.auth_resource import AuthResource
 from rmq import write_to_queue
@@ -20,7 +21,11 @@ class Notify(AuthResource):
         self.schema = NotifySchema()
 
     def post(self):
-        args = request.get_json()
+        try:
+            args = request.get_json()
+        except BadRequest:
+            abort(400, message="POSTed body is invalid JSON")
+
         errors = self.schema.validate(args)
         if errors:
             abort(400, message=str(errors))
diff --git a/endpoints/send.py b/endpoints/send.py
index cb64c4a52ba377cab9efd1cba0162f15b86f04ca..90d519a3ea262f2eeb4cf6c8e628714b5bfbc98a 100644
--- a/endpoints/send.py
+++ b/endpoints/send.py
@@ -2,6 +2,7 @@ import json
 
 from flask_restful import abort, request
 from marshmallow import Schema, fields
+from werkzeug.exceptions import BadRequest
 
 from endpoints.auth_resource import AuthResource
 from rmq import write_to_queue
@@ -21,7 +22,11 @@ class Send(AuthResource):
         self.schema = SendSchema()
 
     def post(self):
-        args = request.get_json()
+        try:
+            args = request.get_json()
+        except BadRequest:
+            abort(400, message="POSTed body is invalid JSON")
+
         errors = self.schema.validate(args)
         if errors:
             abort(400, message=str(errors))