diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetFileRecordByPath.java b/src/main/java/caosdb/server/database/backend/transaction/GetFileRecordByPath.java
index 8e0afcbdc50985f1fa1a939940c05f8429562c90..6366bd2884aca38a0d54eca4a926fcc7e8b9cda4 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetFileRecordByPath.java
+++ b/src/main/java/caosdb/server/database/backend/transaction/GetFileRecordByPath.java
@@ -27,6 +27,7 @@ package caosdb.server.database.backend.transaction;
 import caosdb.server.caching.Cache;
 import caosdb.server.database.CacheableBackendTransaction;
 import caosdb.server.database.backend.interfaces.GetFileRecordByPathImpl;
+import caosdb.server.database.exceptions.EntityDoesNotExistException;
 import caosdb.server.database.exceptions.TransactionException;
 import caosdb.server.database.proto.SparseEntity;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
@@ -62,7 +63,11 @@ public class GetFileRecordByPath extends CacheableBackendTransaction<String, Spa
   @Override
   public SparseEntity executeNoCache() throws TransactionException {
     final GetFileRecordByPathImpl t = getImplementation(GetFileRecordByPathImpl.class);
-    return t.execute(getKey());
+    SparseEntity result = t.execute(getKey());
+    if (result == null) {
+      throw new EntityDoesNotExistException();
+    }
+    return result;
   }
 
   public Integer getId() {
diff --git a/src/main/java/caosdb/server/entity/Message.java b/src/main/java/caosdb/server/entity/Message.java
index 03e788251620b6c192eb86f1bbd172564a66235f..0ffedb4316fe372e09f3b69ca5824a72f98accaf 100644
--- a/src/main/java/caosdb/server/entity/Message.java
+++ b/src/main/java/caosdb/server/entity/Message.java
@@ -79,8 +79,8 @@ public class Message extends Exception implements Comparable<Message>, ToElement
     this(type, code, null, null);
   }
 
-  public Message(final Integer code, final String description) {
-    this("Message", code, description, null);
+  public Message(Integer code, String description) {
+    this(MessageType.Info, code, description);
   }
 
   public Message(final MessageType type, final Integer code, final String description) {
@@ -96,6 +96,10 @@ public class Message extends Exception implements Comparable<Message>, ToElement
     this(type, code, description, null);
   }
 
+  public Message(MessageType type, String description) {
+    this(type.toString(), 0, description);
+  }
+
   public Message(
       final String type, final Integer code, final String description, final String body) {
     this.code = code;
diff --git a/src/main/java/caosdb/server/resource/FileSystemResource.java b/src/main/java/caosdb/server/resource/FileSystemResource.java
index 65e83ee08bc9aeac988022650cd903e34453381b..a910e2dde8a4e385c9905a777eb41fa23bf225af 100644
--- a/src/main/java/caosdb/server/resource/FileSystemResource.java
+++ b/src/main/java/caosdb/server/resource/FileSystemResource.java
@@ -26,10 +26,12 @@ import static caosdb.server.FileSystem.getFromFileSystem;
 import static java.net.URLDecoder.decode;
 
 import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.database.exceptions.EntityDoesNotExistException;
 import caosdb.server.database.misc.TransactionBenchmark;
 import caosdb.server.entity.Entity;
 import caosdb.server.entity.FileProperties;
 import caosdb.server.entity.Message;
+import caosdb.server.entity.Message.MessageType;
 import caosdb.server.entity.RetrieveEntity;
 import caosdb.server.entity.container.TransactionContainer;
 import caosdb.server.permissions.EntityPermission;
@@ -162,7 +164,10 @@ public class FileSystemResource extends AbstractCaosDBServerResource {
     final String entId =
         getEntityID((directory.endsWith("/") ? directory : directory + "/") + file.getName());
     if (entId == null) {
-      new Message("Orphaned file").addToElement(celem);
+      new Message(
+              MessageType.Warning,
+              "Orphaned file. The file is not tracked. This is probably a harmless inconsistency but it might be a sign of other problems.")
+          .addToElement(celem);
     } else {
       celem.setAttribute("id", entId);
     }
@@ -188,8 +193,8 @@ public class FileSystemResource extends AbstractCaosDBServerResource {
     final Transaction<?> t = new RetrieveSparseEntityByPath(c);
     try {
       t.execute();
-    } catch (NullPointerException npe) {
-      // For example files in file system without corresponding File records.
+    } catch (EntityDoesNotExistException exception) {
+      // This file in the file system has no corresponding File record.
       return null;
     }
     final long t2 = System.currentTimeMillis();