diff --git a/xos/core/models/attic/servicedependency_model.py b/xos/core/models/attic/servicedependency_model.py
index dce32e7..b2d2da6 100644
--- a/xos/core/models/attic/servicedependency_model.py
+++ b/xos/core/models/attic/servicedependency_model.py
@@ -2,10 +2,12 @@
 
 def save(self, *args, **kwargs):
     if (not self.subscriber_service):
-        raise XOSValidationError("subscriber_service cannot be null")
-    if (self.subscriber_tenant or self.subscriber_user):
-        raise XOSValidationError(
-            "subscriber_tenant and subscriber_user must be null")
+        raise XOSValidationError("subscriber_service cannot be null", {'subscriber service' : 'subscriber_service cannot be null'})
+    if (self.subscriber_tenant):
+        raise XOSValidationError("subscriber_tenant must be null", {'subscriber tenant' : 'subscriber_tenant must be null'})
+    if (self.subscriber_user):
+        raise XOSValidationError("subscriber_user must be null", {'subscriber user' : 'subscriber_user must be null'})
+
 
     super(ServiceDependency, self).save()
 
diff --git a/xos/core/models/attic/xoscomponentlink_model.py b/xos/core/models/attic/xoscomponentlink_model.py
index 413ce07..bfc5965 100644
--- a/xos/core/models/attic/xoscomponentlink_model.py
+++ b/xos/core/models/attic/xoscomponentlink_model.py
@@ -3,5 +3,5 @@
     if not self.pk:
         existing = XOSComponentLink.objects.filter(container=self.container, alias=self.alias)
         if len(existing) > 0:
-            raise XOSValidationError('XOSComponentLink for %s:%s already defined' % (self.container, self.alias))
+            raise XOSValidationError('XOSComponentLink for %s:%s already defined' % (self.container, self.alias), {'pk' : 'XOSComponentLink for %s:%s already defined' % (self.container, self.alias)})
     super(XOSComponentLink, self).save(*args, **kwds)
diff --git a/xos/core/models/attic/xoscomponentvolume_model.py b/xos/core/models/attic/xoscomponentvolume_model.py
index a2ae229..8d6c7c7 100644
--- a/xos/core/models/attic/xoscomponentvolume_model.py
+++ b/xos/core/models/attic/xoscomponentvolume_model.py
@@ -3,6 +3,6 @@
     if not self.pk:
         existing = XOSComponentVolume.objects.filter(container_path=self.container_path, host_path=self.host_path)
         if len(existing) > 0:
-            raise XOSValidationError('XOSComponentVolume for %s:%s already defined' % (self.container_path, self.host_path))
+            raise XOSValidationError('XOSComponentVolume for %s:%s already defined' % (self.container_path, self.host_path), {'pk' : 'XOSComponentVolume for %s:%s already defined' % (self.container_path, self.host_path)})
     super(XOSComponentVolume, self).save(*args, **kwds)
 
diff --git a/xos/core/models/attic/xoscomponentvolumecontainer_model.py b/xos/core/models/attic/xoscomponentvolumecontainer_model.py
index fda0b03..2509066 100644
--- a/xos/core/models/attic/xoscomponentvolumecontainer_model.py
+++ b/xos/core/models/attic/xoscomponentvolumecontainer_model.py
@@ -3,6 +3,6 @@
     if not self.pk:
         existing = XOSComponentVolumeContainer.objects.filter(name=self.name)
         if len(existing) > 0:
-            raise XOSValidationError('XOSComponentVolumeContainer for %s:%s already defined' % (self.container_path, self.host_path))
+            raise XOSValidationError('XOSComponentVolumeContainer for %s:%s already defined' % (self.container_path, self.host_path), {'pk' : 'XOSComponentVolumeContainer for %s:%s already defined' % (self.container_path, self.host_path)})
     super(XOSComponentVolumeContainer, self).save(*args, **kwds)
 
diff --git a/xos/xos/apibase.py b/xos/xos/apibase.py
index addbbe9..8d80f38 100644
--- a/xos/xos/apibase.py
+++ b/xos/xos/apibase.py
@@ -23,7 +23,7 @@
         serializer = self.get_serializer(self.object, data=request.data, partial=partial)
 
         if not serializer.is_valid():
-            raise XOSValidationError(fields=serializer._errors)
+            raise XOSValidationError('Invalid serializer', fields=serializer._errors)
 
         # Do the XOS perm check
 
@@ -65,7 +65,7 @@
         # In rest_framework 3.x: we can pass raise_exception=True instead of
         # raising the exception ourselves
         if not serializer.is_valid():
-            raise XOSValidationError(fields=serializer._errors)
+            raise XOSValidationError('Invalid serializer', fields=serializer._errors)
 
         # now do XOS can_update permission checking
         obj = serializer.Meta.model(**serializer.validated_data)
