diff --git a/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java b/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java
index a64223e240dd54cf04b6d8ffec14dbb0e41d6b83..0b09d37b93a7f062ce87ccb81652018f23b637c7 100644
--- a/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java
+++ b/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java
@@ -1,12 +1,14 @@
 package it.inaf.oats.vospace.exception;
 
+import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
 @ResponseStatus(value = HttpStatus.CONFLICT)
-public class DuplicateNodeException extends VoSpaceException {
+public class DuplicateNodeException extends VoSpaceErrorSummarizableException {
 
     public DuplicateNodeException(String path) {
-        super("Duplicate Node at path: " + path);
+        super("Duplicate Node at path: " + path,
+                ErrorSummaryFactory.VOSpaceFault.DUPLICATE_NODE);
     }
 }
diff --git a/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java b/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java
index 635bf575bdbf5ec2d48c58fec7547346f9eebfa7..05d702e5f1fe8c0b51790c8007b3b72a9f572840 100644
--- a/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java
+++ b/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java
@@ -1,21 +1,24 @@
 package it.inaf.oats.vospace.exception;
 
+import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
 @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)   // Status code 500
-public class InternalFaultException extends VoSpaceException {
+public class InternalFaultException extends VoSpaceErrorSummarizableException {
 
     private static final Logger LOG = LoggerFactory.getLogger(InternalFaultException.class);
 
     public InternalFaultException(String msg) {
-        super("InternalFaultException: " + msg);
+        super("InternalFaultException: " + msg,
+                ErrorSummaryFactory.VOSpaceFault.INTERNAL_FAULT);
     }
 
     public InternalFaultException(Throwable cause) {
-        super("InternalFaultException: " + getMessage(cause));
+        super("InternalFaultException: " + getMessage(cause),
+                ErrorSummaryFactory.VOSpaceFault.INTERNAL_FAULT);
     }
 
     private static String getMessage(Throwable cause) {
diff --git a/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java b/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java
index 085d10211ecbc9cc3184f85582b174ceaaa41fa5..e91e3f5432563c9c86cda2032a22fbba295aacea 100644
--- a/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java
+++ b/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java
@@ -1,21 +1,25 @@
 package it.inaf.oats.vospace.exception;
 
+import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
 @ResponseStatus(value = HttpStatus.BAD_REQUEST)
-public class InvalidURIException extends VoSpaceException {
+public class InvalidURIException extends VoSpaceErrorSummarizableException {
 
     public InvalidURIException(String URI, String path) {
         super("InvalidURI. Payload node URI: " + URI
-                + " is not consistent with request path: " + path);
+                + " is not consistent with request path: " + path,
+                ErrorSummaryFactory.VOSpaceFault.INVALID_URI);
     }
 
     public InvalidURIException(String URI) {
-        super("InvalidURI. URI: " + URI + " is not in a valid format");
+        super("InvalidURI. URI: " + URI + " is not in a valid format",
+                ErrorSummaryFactory.VOSpaceFault.INVALID_URI);
     }
 
     public InvalidURIException(IllegalArgumentException ex) {
-        super("InvalidURI. " + ex.getMessage());
+        super("InvalidURI. " + ex.getMessage(),
+                ErrorSummaryFactory.VOSpaceFault.INVALID_URI);
     }
 }
diff --git a/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java b/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java
new file mode 100644
index 0000000000000000000000000000000000000000..2586ac6c1afaed1688673ba2e8d0c19193c54e68
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java
@@ -0,0 +1,12 @@
+package it.inaf.oats.vospace.exception;
+
+import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
+
+public class NodeBusyException extends VoSpaceErrorSummarizableException {
+
+    public NodeBusyException(String path) {
+        super("Node Busy: at path " + path,
+                 ErrorSummaryFactory.VOSpaceFault.NODE_BUSY);
+    }
+
+}
diff --git a/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java b/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java
index b14f4c2a791b2caea3786f43e3fc75d5a889296e..a7bb797373f1f53d06a61e4abc7e649c8977e265 100644
--- a/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java
+++ b/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java
@@ -1,12 +1,14 @@
 package it.inaf.oats.vospace.exception;
 
+import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
 @ResponseStatus(value = HttpStatus.NOT_FOUND)
-public class NodeNotFoundException extends VoSpaceException {
+public class NodeNotFoundException extends VoSpaceErrorSummarizableException {
 
     public NodeNotFoundException(String path) {
-        super("NodeNotFound: " + path);
+        super("NodeNotFound: " + path,
+                ErrorSummaryFactory.VOSpaceFault.NODE_NOT_FOUND);
     }
 }
diff --git a/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java b/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java
index 20a199167e21f826d64c514be594ae25332c89ee..31194db844fdf21d97e203a9229b0a15a13928c4 100644
--- a/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java
+++ b/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java
@@ -1,12 +1,14 @@
 package it.inaf.oats.vospace.exception;
 
+import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
 @ResponseStatus(value = HttpStatus.FORBIDDEN)
-public class PermissionDeniedException extends VoSpaceException {
+public class PermissionDeniedException extends VoSpaceErrorSummarizableException {
 
     public PermissionDeniedException(String path) {
-        super("Permission Denied at path: " + path);
+        super("Permission Denied at path: " + path,
+                ErrorSummaryFactory.VOSpaceFault.PERMISSION_DENIED);
     }
 }
diff --git a/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java b/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..d13d941890927da670ea1e07f9fe69e8adbf6c78
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java
@@ -0,0 +1,12 @@
+package it.inaf.oats.vospace.exception;
+
+import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
+
+public class ProtocolNotSupportedException extends VoSpaceErrorSummarizableException{
+    
+    public ProtocolNotSupportedException(String protocol) {
+        super("Protocol Not Supported: " + protocol, 
+                ErrorSummaryFactory.VOSpaceFault.PROTOCOL_NOT_SUPPORTED);
+    }
+    
+}
diff --git a/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java b/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java
new file mode 100644
index 0000000000000000000000000000000000000000..caed42e1deef61783d8242e57b3eed0d43ec3906
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java
@@ -0,0 +1,23 @@
+package it.inaf.oats.vospace.exception;
+
+import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
+public class VoSpaceErrorSummarizableException extends VoSpaceException {
+    
+    ErrorSummaryFactory.VOSpaceFault fault;
+    
+    public VoSpaceErrorSummarizableException(String message,
+            ErrorSummaryFactory.VOSpaceFault fault)
+    {
+        super(message);
+        this.fault = fault;        
+    }
+    
+    public ErrorSummaryFactory.VOSpaceFault getFault()
+    {
+        return this.fault;
+    }
+}