diff --git a/src/main/java/it/inaf/ia2/transfer/controller/AuthenticatedFileController.java b/src/main/java/it/inaf/ia2/transfer/controller/AuthenticatedFileController.java
index cefea304af21bf9d1a575d248afd94953104d5d2..b00ab8c0d7900e3bd8152dd39cdba0a92706bb2f 100644
--- a/src/main/java/it/inaf/ia2/transfer/controller/AuthenticatedFileController.java
+++ b/src/main/java/it/inaf/ia2/transfer/controller/AuthenticatedFileController.java
@@ -6,7 +6,7 @@
 package it.inaf.ia2.transfer.controller;
 
 import it.inaf.ia2.transfer.auth.TokenPrincipal;
-import it.inaf.ia2.transfer.exception.PermissionDeniedException;
+import it.inaf.oats.vospace.exception.PermissionDeniedException;
 
 public abstract class AuthenticatedFileController extends FileController {
 
diff --git a/src/main/java/it/inaf/ia2/transfer/service/FileCopyService.java b/src/main/java/it/inaf/ia2/transfer/service/FileCopyService.java
index d9e493efe19defd6f82d4e8378a99d5b87b89a7d..2898ead8ba6e1e7f34489d6196f94b62ba7a68d1 100644
--- a/src/main/java/it/inaf/ia2/transfer/service/FileCopyService.java
+++ b/src/main/java/it/inaf/ia2/transfer/service/FileCopyService.java
@@ -6,11 +6,11 @@
 package it.inaf.ia2.transfer.service;
 
 import it.inaf.ia2.transfer.auth.TokenPrincipal;
-import it.inaf.ia2.transfer.exception.JobException;
-import it.inaf.ia2.transfer.exception.JobException.Type;
 import it.inaf.ia2.transfer.persistence.FileDAO;
 import it.inaf.ia2.transfer.persistence.LocationDAO;
 import it.inaf.ia2.transfer.persistence.model.FileInfo;
+import it.inaf.oats.vospace.exception.InternalFaultException;
+import it.inaf.oats.vospace.exception.PermissionDeniedException;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -160,8 +160,7 @@ public class FileCopyService {
 
         if (baseUrl == null) {
             LOG.error("Location URL not found for location " + sourceFile.getLocationId());
-            throw new JobException(Type.FATAL, "Internal Fault")
-                    .setErrorDetail("InternalFault: Unable to retrieve location of file " + sourceFile.getVirtualPath());
+            throw new InternalFaultException("Unable to retrieve location of file " + sourceFile.getVirtualPath());
         }
 
         String url = baseUrl + "/" + sourceFile.getVirtualName();
@@ -191,8 +190,7 @@ public class FileCopyService {
     private void copyLocalFile(FileInfo sourceFileInfo,
             FileInfo destinationFileInfo, TokenPrincipal tokenPrincipal) {
         if (!authorizationService.isDownloadable(sourceFileInfo, tokenPrincipal)) {
-            throw new JobException(Type.FATAL, "Permission Denied")
-                    .setErrorDetail("PermissionDenied: " + sourceFileInfo.getVirtualPath());
+            throw PermissionDeniedException.forPath(sourceFileInfo.getVirtualPath());
         }
 
         File file = new File(sourceFileInfo.getOsPath());