diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImpl.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImpl.java
index ce74eb4d07a236e9a047af25977682e3a7288277..b67b2c625aa4e2755e32d13c00ad7599725224c8 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImpl.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImpl.java
@@ -21,6 +21,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExternalDataBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister;
@@ -287,6 +288,10 @@ public class ScreeningApiImpl
     {
         externalDataBO.loadByCode(datasetCode);
         ExternalDataPE externalData = externalDataBO.getExternalData();
+        if (externalData == null)
+        {
+            throw UserFailureException.fromTemplate("Dataset %s does not exist", datasetCode);
+        }
         return new DatasetIdentifier(datasetCode, externalData.getDataStore().getDownloadUrl());
     }
 }