diff --git a/src/InSillyCloWeb/assemblies/models.py b/src/InSillyCloWeb/assemblies/models.py
index f2bdb71f0b9714841563c34489e6cf60fc5c6569..c598ce9ad838fde40f7c8e8e09b639a5e59d4252 100644
--- a/src/InSillyCloWeb/assemblies/models.py
+++ b/src/InSillyCloWeb/assemblies/models.py
@@ -11,6 +11,7 @@ import zipfile
 from pathlib import Path
 import shutil
 
+from django.contrib import messages
 from django.contrib.auth import models as auth_models
 from django.contrib.sessions.models import Session
 from django.db import models
@@ -18,9 +19,12 @@ from django.db.models.functions import Upper
 from django.urls import reverse
 from django.utils.translation import gettext_lazy as _
 from django.conf import settings
+
+from . import utils
 from .insillyclo_impl import InSillyCloDjangoMessageObserver
 
 
+import insillyclo.additional_exception
 import insillyclo.data_source
 import insillyclo.main
 import insillyclo.models
@@ -399,22 +403,29 @@ class SimulatorJob(models.Model):
             primers_file = pathlib.Path(str(self.primers_file.file))
         else:
             primers_file = None
-        return insillyclo.simulator.compute_all(
-            observer=InSillyCloDjangoMessageObserver(
-                request=request,
-                debug=False,
-                fail_on_error=False,
-            ),
-            input_template_filled=self.job_dir / 'design_file.xlsx',
-            settings=None,
-            input_parts_files=self.db_ip_files,
-            gb_plasmids=self.genbank_dir.glob('**/*.gb'),
-            output_dir=self.results_dir,
-            data_source=insillyclo.data_source.DataSourceHardCodedImplementation(),
-            primers_file=primers_file,
-            primer_id_pairs=list(self.pcr_pairs) if primers_file else None,
-            enzyme_names=self.enzyme_names,
-        )
+        for r in self.results_dir.glob('*'):
+            r.unlink()
+        try:
+            output = insillyclo.simulator.compute_all(
+                observer=InSillyCloDjangoMessageObserver(
+                    request=request,
+                    debug=False,
+                    fail_on_error=True,
+                ),
+                input_template_filled=self.job_dir / 'design_file.xlsx',
+                settings=None,
+                input_parts_files=self.db_ip_files,
+                gb_plasmids=self.genbank_dir.glob('**/*.gb'),
+                output_dir=self.results_dir,
+                data_source=insillyclo.data_source.DataSourceHardCodedImplementation(),
+                primers_file=primers_file,
+                primer_id_pairs=list(self.pcr_pairs) if primers_file else None,
+                enzyme_names=self.enzyme_names,
+            )
+        except insillyclo.additional_exception.InSillyCloFailureException as e:
+            output = None
+            messages.error(request, utils.clear_sensitive_info(str(e), self))
+        return output
 
     @property
     def db_ip_files(self):
diff --git a/src/InSillyCloWeb/assemblies/utils.py b/src/InSillyCloWeb/assemblies/utils.py
index b2c1d2a023ff4270977beb7f736ba961d9507e82..51ef0fc49e179434c612b43d3b3721061fd59c64 100644
--- a/src/InSillyCloWeb/assemblies/utils.py
+++ b/src/InSillyCloWeb/assemblies/utils.py
@@ -3,6 +3,7 @@ import glob
 from zipfile import ZipFile
 from Bio import SeqIO
 from Bio.Seq import Seq
+from django.conf import settings
 
 
 def get_genbank_file(name):
@@ -71,3 +72,10 @@ def get_files(path, extension, recursive=False):
         for root, dirs, files in os.walk(path):
             for file_path in glob.iglob(root + "/*." + extension):
                 yield file_path
+
+
+def clear_sensitive_info(s: str, job=None) -> str:
+    if job:
+        s = s.replace(str(job.job_dir) + '/', '')
+    s = s.replace(settings.MEDIA_ROOT + '/', '')
+    return s