diff --git a/gracedb/api/v1/events/views.py b/gracedb/api/v1/events/views.py
index f8ff46a5b0e103d32a884419b84e621a30cba1c1..86d2c4b7cbcc6a38797b24cadc307efa213559a7 100644
--- a/gracedb/api/v1/events/views.py
+++ b/gracedb/api/v1/events/views.py
@@ -40,7 +40,7 @@ from core.vfile import VersionedFile
 from events.buildVOEvent import buildVOEvent, VOEventBuilderException
 from events.forms import CreateEventForm
 from events.models import Event, Group, Search, Pipeline, EventLog, Tag, \
-    Label, EMGroup, EMBBEventLog, EMSPECTRUM, VOEvent
+    Label, Labelling, EMGroup, EMBBEventLog, EMSPECTRUM, VOEvent
 from events.permission_utils import user_has_perm, filter_events_for_user, \
     is_external, check_external_file_access
 from events.translator import handle_uploaded_data
@@ -730,11 +730,13 @@ class EventLabel(InheritPermissionsAPIView):
 
     @event_and_auth_required
     def delete(self, request, event, label):
+
         try:
             rv = delete_label(event, request, label)
+        except Labelling.DoesNotExist as e:
+            return Response(e.message, status=status.HTTP_404_NOT_FOUND)
         except (ValueError, Label.ProtectedLabelError) as e:
-            return Response(e.message,
-                        status=status.HTTP_400_BAD_REQUEST)
+            return Response(e.message, status=status.HTTP_400_BAD_REQUEST)
 
         return Response(status=status.HTTP_204_NO_CONTENT)
 
diff --git a/gracedb/events/view_logic.py b/gracedb/events/view_logic.py
index 14c168c793c7036b66a754d3705692a7716012ec..8987f65a5b7666ad012572e5fa79dc4872e3b656 100644
--- a/gracedb/events/view_logic.py
+++ b/gracedb/events/view_logic.py
@@ -240,9 +240,9 @@ def delete_label(event, request, labelName, can_remove_protected=False,
 
     # Next, check if the label is in the list of labels for the event. Throw out an
     # error if it isn't. There might be a more elegant way of doing this.
-    if label not in event.labels.all():
-            d['warning'] = "No label '%s' associated with event %s" % (labelName, event.graceid)
-            raise ValueError("No label '%s' associated with event %s" % (labelName, event.graceid))
+    if not event.labelling_set.filter(label__name=labelName).exists():
+        d['warning'] = "No label '%s' associated with event %s" % (labelName, event.graceid)
+        raise Labelling.DoesNotExist("No label '%s' associated with event %s" % (labelName, event.graceid))
     else:
         this_label = Labelling.objects.get(
                 event = event,