diff --git a/bob/bio/base/tools/algorithm.py b/bob/bio/base/tools/algorithm.py
index c554d91714f018ce6eccab8f5a4e3387e991dfe6..bcf6a470f601a966b553104d81d5028a6244370e 100644
--- a/bob/bio/base/tools/algorithm.py
+++ b/bob/bio/base/tools/algorithm.py
@@ -136,8 +136,8 @@ def project(algorithm, extractor, groups = None, indices = None, allow_missing_f
           logger.debug("... Projection for extracted file %s failed; skipping", feature_file)
           continue
         else:
-          logger.error("Projection of file '%s' was not successful", feature_file)
-        continue
+          raise RuntimeError("Projection of file '%s' was not successful" % feature_file)
+
 
       # write it
       algorithm.write_feature(projected, projected_file)
@@ -284,8 +284,7 @@ def enroll(algorithm, extractor, compute_zt_norm, indices = None, groups = ['dev
               logger.debug("... Enrollment for model %s failed; skipping", model_id)
               continue
             else:
-              logger.error("Enrollemnt of model '%s' was not successful", model_id)
-            continue
+              raise RuntimeError("Enrollemnt of model '%s' was not successful" % model_id)
 
           # save the model
           algorithm.write_model(model, model_file)
@@ -332,8 +331,7 @@ def enroll(algorithm, extractor, compute_zt_norm, indices = None, groups = ['dev
               logger.debug("... Enrollment for T-model %s failed; skipping", t_model_id)
               continue
             else:
-              logger.error("Enrollemnt of T-model '%s' was not successful", t_model_id)
-            continue
+              raise RuntimeError("Enrollemnt of T-model '%s' was not successful", t_model_id)
 
           # save model
           algorithm.write_model(t_model, t_model_file)
diff --git a/bob/bio/base/tools/extractor.py b/bob/bio/base/tools/extractor.py
index 4940ec4d705767a26f8bf154583c9735333cfa00..7a0b62e2cf30ac55d33ba9a507961978aa10c88c 100644
--- a/bob/bio/base/tools/extractor.py
+++ b/bob/bio/base/tools/extractor.py
@@ -125,8 +125,8 @@ def extract(extractor, preprocessor, groups=None, indices = None, allow_missing_
           logger.debug("... Feature extraction for data file %s failed; skipping", data_file)
           continue
         else:
-          logger.error("Feature extraction  of file '%s' was not successful", data_file)
-        continue
+          raise RuntimeError("Feature extraction  of file '%s' was not successful" % data_file)
+
 
       # write feature
       extractor.write_feature(feature, feature_file)
diff --git a/bob/bio/base/tools/preprocessor.py b/bob/bio/base/tools/preprocessor.py
index 6b81f2a1146c648db0eb0f9f478cf4d8a40bedaa..045d1e71937598702f6480d68311740ac4cc7857 100644
--- a/bob/bio/base/tools/preprocessor.py
+++ b/bob/bio/base/tools/preprocessor.py
@@ -80,9 +80,9 @@ def preprocess(preprocessor, groups = None, indices = None, allow_missing_files
       if preprocessed_data is None:
         if allow_missing_files:
           logger.debug("... Processing original data file '%s' was not successful", file_name)
+          continue
         else:
-          logger.error("Preprocessing of file '%s' was not successful", file_name)
-        continue
+          raise RuntimeError("Preprocessing of file '%s' was not successful" % file_name)
 
       # write the data
       preprocessor.write_data(preprocessed_data, preprocessed_data_file)