diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTask.java
index 0b5460e455f143d26f7e6341b60e9e5f39aa03bb..04aef94bc23ed0fde40cec8ab9aa92ea76af2470 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTask.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTask.java
@@ -22,6 +22,11 @@ import java.util.Set;
 
 import ch.systemsx.cisd.bds.StringUtils;
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
+import ch.systemsx.cisd.common.logging.ISimpleLogger;
+import ch.systemsx.cisd.common.logging.Log4jSimpleLogger;
+import ch.systemsx.cisd.common.logging.LogCategory;
+import ch.systemsx.cisd.common.logging.LogFactory;
+import ch.systemsx.cisd.common.logging.LogLevel;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
 import ch.systemsx.cisd.common.utilities.Template;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
@@ -53,6 +58,8 @@ public class NotifyingTask extends AbstractPostRegistrationTask
 
     private static final String DATA_SET_CODE_PLACE_HOLDER = "data-set-code";
 
+    private final ISimpleLogger logger;
+
     private final Template messageTemplate;
 
     private final Template destinationPathTemplate;
@@ -60,8 +67,15 @@ public class NotifyingTask extends AbstractPostRegistrationTask
     private final String[] includeDatasetTypePatternsOrNull;
 
     public NotifyingTask(Properties properties, IEncapsulatedOpenBISService service)
+    {
+        this(properties, service, new Log4jSimpleLogger(LogFactory.getLogger(LogCategory.OPERATION,
+                NotifyingTask.class)));
+    }
+
+    NotifyingTask(Properties properties, IEncapsulatedOpenBISService service, ISimpleLogger logger)
     {
         super(properties, service);
+        this.logger = logger;
         messageTemplate =
                 new Template(PropertyUtils.getMandatoryProperty(properties, MESSAGE_TEMPLATE_KEY));
         destinationPathTemplate =
@@ -102,11 +116,13 @@ public class NotifyingTask extends AbstractPostRegistrationTask
             throw new IllegalArgumentException("Unknown data set: " + dataSetCode);
         }
         return new Executor(dataSet, messageTemplate.createFreshCopy(),
-                destinationPathTemplate.createFreshCopy(), includeDatasetTypePatternsOrNull);
+                destinationPathTemplate.createFreshCopy(), includeDatasetTypePatternsOrNull, logger);
     }
 
     private static final class Executor implements IPostRegistrationTaskExecutor
     {
+        private final ISimpleLogger logger;
+
         private final ExternalData dataSet;
 
         private final Template messageTemplate;
@@ -116,12 +132,14 @@ public class NotifyingTask extends AbstractPostRegistrationTask
         private final String[] includeDatasetTypePatternsOrNull;
 
         public Executor(ExternalData dataSet, Template messageTemplate,
-                Template destinationPathTemplate, String[] includeDatasetTypePatternsOrNull)
+                Template destinationPathTemplate, String[] includeDatasetTypePatternsOrNull,
+                ISimpleLogger logger)
         {
             this.dataSet = dataSet;
             this.messageTemplate = messageTemplate;
             this.destinationPathTemplate = destinationPathTemplate;
             this.includeDatasetTypePatternsOrNull = includeDatasetTypePatternsOrNull;
+            this.logger = logger;
         }
 
         public ICleanupTask createCleanupTask()
@@ -133,9 +151,22 @@ public class NotifyingTask extends AbstractPostRegistrationTask
         {
             if (typeMatches())
             {
-                String messageText = fillTemplate(messageTemplate);
-                FileUtilities.writeToFile(new File(fillTemplate(destinationPathTemplate)),
-                        messageText);
+                String messageText;
+                String fileName;
+                try
+                {
+                    messageText = fillTemplate(messageTemplate);
+                    fileName = fillTemplate(destinationPathTemplate);
+                } catch (UnknownPropertyRequested ex)
+                {
+                    logger.log(
+                            LogLevel.WARN,
+                            String.format(
+                                    "Could not produce post registration confirmation file for dataset '%s': %s",
+                                    dataSet.getCode(), ex.getMessage()));
+                    return;
+                }
+                FileUtilities.writeToFile(new File(fileName), messageText);
             }
         }
 
@@ -156,7 +187,7 @@ public class NotifyingTask extends AbstractPostRegistrationTask
             return false;
         }
 
-        private String fillTemplate(Template template)
+        private String fillTemplate(Template template) throws UnknownPropertyRequested
         {
             Set<String> placeholderNames = template.getPlaceholderNames();
             for (String placeholderName : placeholderNames)
@@ -178,7 +209,7 @@ public class NotifyingTask extends AbstractPostRegistrationTask
             return messageText;
         }
 
-        private String getProperty(String propertyName)
+        private String getProperty(String propertyName) throws UnknownPropertyRequested
         {
             for (IEntityProperty property : dataSet.getProperties())
             {
@@ -187,9 +218,20 @@ public class NotifyingTask extends AbstractPostRegistrationTask
                     return property.tryGetAsString();
                 }
             }
-            throw new IllegalArgumentException("Unknown property: " + propertyName);
+            throw new UnknownPropertyRequested(String.format("Property '%s' is not set.",
+                    propertyName));
         }
 
     }
 
+    private final static class UnknownPropertyRequested extends Exception
+    {
+        private static final long serialVersionUID = 1L;
+
+        public UnknownPropertyRequested(String message)
+        {
+            super(message);
+        }
+    }
+
 }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTaskTest-Example.properties b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTaskTest-Example.properties
index c2d735efe9241e3044f5b084aedded301bd7b039..737cb0a75e18cb231034c690c8910f0131277520 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTaskTest-Example.properties
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTaskTest-Example.properties
@@ -2,4 +2,4 @@ message-template = storage_provider.storage.status = STORAGE_SUCCESSFUL\n\
                    storage_provider.dataset.id = ${data-set-code}\n\
                    ibrain2.dataset.id = ${property:ibrain-data-set-id}\n
 destination-path-template = targets/ibrain-${property:ibrain-data-set-id}.txt
-include-dataset-type-patterns = .*XYZ.*, ABC
+include-dataset-type-patterns = .*XYZ.*, accepted-type
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTaskTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTaskTest.java
index a4427d4bd78d191028c65c87373d6e4a340e065c..65ada26a00256d20bb32c086f2c17db2c93e2bca 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTaskTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/NotifyingTaskTest.java
@@ -30,6 +30,8 @@ import org.testng.annotations.Test;
 
 import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
+import ch.systemsx.cisd.common.logging.AssertingLogger;
+import ch.systemsx.cisd.common.logging.LogLevel;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.DataSetBuilder;
 
@@ -44,6 +46,8 @@ public class NotifyingTaskTest extends AbstractFileSystemTestCase
 
     private static final String DATA_SET_CODE_3 = "ds-3";
 
+    private static final String DATA_SET_CODE_4 = "ds-4";
+
     private Mockery context;
 
     private IEncapsulatedOpenBISService service;
@@ -78,8 +82,11 @@ public class NotifyingTaskTest extends AbstractFileSystemTestCase
             IOUtils.closeQuietly(inStream);
         }
         final DataSetBuilder dataSet1 = createDataset(DATA_SET_CODE_1, "ooo_XYZ_ooo", "ibrain-2");
-        final DataSetBuilder dataSet2 = createDataset(DATA_SET_CODE_2, "ABC", "ibrain-3");
-        final DataSetBuilder filteredDataSet = createDataset(DATA_SET_CODE_3, "ibrain-4", null);
+        final DataSetBuilder dataSet2 = createDataset(DATA_SET_CODE_2, "accepted-type", "ibrain-3");
+        final DataSetBuilder filteredDataSet =
+                createDataset(DATA_SET_CODE_3, "filtered-type", null);
+        final DataSetBuilder noPropertiesDataSet =
+                createDataset(DATA_SET_CODE_4, "accepted-type", null);
 
         context.checking(new Expectations()
             {
@@ -92,9 +99,13 @@ public class NotifyingTaskTest extends AbstractFileSystemTestCase
 
                     one(service).tryGetDataSet(DATA_SET_CODE_3);
                     will(returnValue(filteredDataSet.getDataSet()));
+
+                    one(service).tryGetDataSet(DATA_SET_CODE_4);
+                    will(returnValue(noPropertiesDataSet.getDataSet()));
                 }
             });
-        NotifyingTask notifyingTask = new NotifyingTask(properties, service);
+        AssertingLogger logger = new AssertingLogger();
+        NotifyingTask notifyingTask = new NotifyingTask(properties, service, logger);
 
         IPostRegistrationTaskExecutor executor = execute(notifyingTask, DATA_SET_CODE_1);
         ICleanupTask cleanupTask = executor.createCleanupTask();
@@ -109,9 +120,16 @@ public class NotifyingTaskTest extends AbstractFileSystemTestCase
                 "targets/ibrain-ibrain-3.txt").isFile());
 
         execute(notifyingTask, DATA_SET_CODE_3);
-        assertFalse("confirnation file for " + DATA_SET_CODE_3 + " should not be created!",
+        assertFalse("confirmation file for " + DATA_SET_CODE_3 + " should not be created!",
                 new File("targets/ibrain-ibrain-4.txt").exists());
 
+        execute(notifyingTask, DATA_SET_CODE_4);
+        logger.assertNumberOfMessage(1);
+        logger.assertEq(
+                0,
+                LogLevel.WARN,
+                "Could not produce post registration confirmation file for dataset 'ds-4': Property 'ibrain-data-set-id' is not set.");
+
         context.assertIsSatisfied();
     }