diff --git a/ippisite/ippisite/admin.py b/ippisite/ippisite/admin.py
index da708f9c9a83053515d11934051eed00e98f83ec..fa80270cc631d16abcdc646e8d53df7efa45bc29 100644
--- a/ippisite/ippisite/admin.py
+++ b/ippisite/ippisite/admin.py
@@ -46,7 +46,7 @@ class IppidbAdmin(admin.AdminSite):
         task = launch_test_command_caching.delay()
         print(task.state)
         messages.add_message(request, messages.INFO, "Test job launched")
-        return redirect("/admin/")
+        return redirect("/admin/ippidb/job")
 
     def launch_compound_properties_caching_view(self, request):
         """
@@ -57,7 +57,7 @@ class IppidbAdmin(admin.AdminSite):
         messages.add_message(
             request, messages.INFO, "Compound properties caching launched"
         )
-        return redirect("/admin/")
+        return redirect("/admin/ippidb/job")
 
     def launch_drugbank_similarity_computing_view(self, request):
         """
@@ -68,7 +68,7 @@ class IppidbAdmin(admin.AdminSite):
         messages.add_message(
             request, messages.INFO, "DrugBank similarity computing launched"
         )
-        return redirect("/admin/")
+        return redirect("/admin/ippidb/job")
 
     def launch_plots_computing_view(self, request):
         """
@@ -76,4 +76,4 @@ class IppidbAdmin(admin.AdminSite):
         """
         launch_plots_computing()
         messages.add_message(request, messages.INFO, "Plots computing launched")
-        return redirect("/admin/")
+        return redirect("/admin/ippidb/job")
diff --git a/ippisite/ippisite/decorator.py b/ippisite/ippisite/decorator.py
index a66e1d0017e27fc177d0766a792dea92491b9f79..865d8bd1ae65c25bb1fec0ca775fad84da4d1fd0 100644
--- a/ippisite/ippisite/decorator.py
+++ b/ippisite/ippisite/decorator.py
@@ -18,10 +18,10 @@ class MonitorTask(Task):
     def __call__(self, *args, **kwargs):
         """In celery task this function call the run method, here you can
         set some environment variable before the run of the task"""
-
         tasks = TaskResult.objects.filter(
             task_name=self.request.task,
             status__in=[states.STARTED, states.PENDING, states.RETRY, states.RECEIVED],
+            task_args=str(args), task_kwargs=str(kwargs)
         )
         count_tasks = tasks.count()
         if not count_tasks:
@@ -45,8 +45,12 @@ class MonitorTask(Task):
         super(MonitorTask, self).on_success(retval, task_id, args, kwargs)
 
     def on_failure(self, exc, task_id, args, kwargs, einfo):
-        self.write(std_err="".join(traceback.format_tb(einfo.tb)))
         super(MonitorTask, self).on_failure(exc, task_id, args, kwargs, einfo)
+        if isinstance(exc, AlreadyExistError):
+            self.update_state(state=states.REVOKED)
+        else:
+            self.update_state(state=states.FAILURE)
+        self.write(std_err="".join(traceback.format_tb(einfo.tb)))
 
     def update_state(self, task_id=None, state=None, meta=None, **kwargs):
         self.state = state