diff --git a/src/main/java/it/inaf/oats/vospace/exception/ContainerNotFoundException.java b/src/main/java/it/inaf/oats/vospace/exception/ContainerNotFoundException.java
new file mode 100644
index 0000000000000000000000000000000000000000..7480c2940a9596aa98191907c4b4151e298d4957
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/exception/ContainerNotFoundException.java
@@ -0,0 +1,12 @@
+package it.inaf.oats.vospace.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(value = HttpStatus.NOT_FOUND)
+public class ContainerNotFoundException extends VoSpaceException {
+
+    public ContainerNotFoundException(String path) {
+        super("Container Not Found at path: " + path);
+    }
+}
diff --git a/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java b/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java
new file mode 100644
index 0000000000000000000000000000000000000000..a64223e240dd54cf04b6d8ffec14dbb0e41d6b83
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java
@@ -0,0 +1,12 @@
+package it.inaf.oats.vospace.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(value = HttpStatus.CONFLICT)
+public class DuplicateNodeException extends VoSpaceException {
+
+    public DuplicateNodeException(String path) {
+        super("Duplicate Node at path: " + path);
+    }
+}
diff --git a/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java b/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java
new file mode 100644
index 0000000000000000000000000000000000000000..c303711a13976bfffe2263868204b92f3c1dd540
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java
@@ -0,0 +1,18 @@
+package it.inaf.oats.vospace.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(value = HttpStatus.BAD_REQUEST)
+public class InvalidURIException extends VoSpaceException {
+
+    public InvalidURIException(String URI, String path) {
+        super("InvalidURI. Payload node URI: " + URI + 
+                " is not consistent with request path: " + path);
+    }
+    
+    public InvalidURIException(String URI)
+    {
+        super("InvalidURI. URI: "+URI+ " is not in a valid format");
+    }
+}
diff --git a/src/main/java/it/inaf/oats/vospace/exception/LinkFoundException.java b/src/main/java/it/inaf/oats/vospace/exception/LinkFoundException.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f316c144802599cae0a9873c7268f17f5391794
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/exception/LinkFoundException.java
@@ -0,0 +1,12 @@
+package it.inaf.oats.vospace.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(value = HttpStatus.BAD_REQUEST)
+public class LinkFoundException extends VoSpaceException {
+
+    public LinkFoundException(String path) {
+        super("Link Found at path: " + path);
+    }
+}
diff --git a/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java b/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..20a199167e21f826d64c514be594ae25332c89ee
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java
@@ -0,0 +1,12 @@
+package it.inaf.oats.vospace.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(value = HttpStatus.FORBIDDEN)
+public class PermissionDeniedException extends VoSpaceException {
+
+    public PermissionDeniedException(String path) {
+        super("Permission Denied at path: " + path);
+    }
+}