diff --git a/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenancePlugin.java b/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenancePlugin.java
index d6b07dd6eabf4f1487ac4f6c1d751f68e20aab1e..995e744ec8199473cd233f464e1534d4f02eee67 100644
--- a/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenancePlugin.java
+++ b/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenancePlugin.java
@@ -45,7 +45,14 @@ public class MaintenancePlugin
         }
         // The following order is important because only after set up the task knows whether it
         // needs a lock or not.
-        task.setUp(parameters.getPluginName(), parameters.getProperties());
+        try
+        {
+            task.setUp(parameters.getPluginName(), parameters.getProperties());
+        } catch (Throwable t)
+        {
+            throw new ConfigurationFailureException("Set up of maintenance task '" + parameters.getPluginName() 
+                    + "' failed: " + t.getMessage(), t);
+        }
         this.requiresDataStoreLock = requiresDataStoreLock();
     }