diff --git a/endpoints/client.py b/endpoints/client.py
index 60fca56afc86212b9b258010992071dcd1d280ff..c22df555e6ff472c2cd37c17e7165dc9bb226834 100644
--- a/endpoints/client.py
+++ b/endpoints/client.py
@@ -1,11 +1,13 @@
-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 +39,11 @@ class Client(Resource):
         return client, 204
 
     def put(self, client_id):
-        args = request.get_json()
+        try:
+            args = request.get_json()
+        except BadRequest:
+            return "POSTed body is invalid JSON", 400
+
         errors = self.schema.validate(args)
         if errors:
             abort(400, message=str(errors))
@@ -63,7 +69,10 @@ class ClientList(Resource):
         }
 
     def post(self):
-        args = request.get_json()
+        try:
+            args = request.get_json()
+        except BadRequest:
+            return "POSTed body is invalid JSON", 400
 
         errors = self.schema.validate(args)
         if errors:
@@ -71,7 +80,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..3035e79fbb9dd915341085663a407e7ff82df802 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:
+            return "POSTed body is invalid JSON", 400
+
         errors = self.schema.validate(args)
         if errors:
             abort(400, message=str(errors))
diff --git a/endpoints/send.py b/endpoints/send.py
index cb64c4a52ba377cab9efd1cba0162f15b86f04ca..edb5277c08584845e569ef1b52450a7af44186fe 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:
+            return "POSTed body is invalid JSON", 400
+
         errors = self.schema.validate(args)
         if errors:
             abort(400, message=str(errors))