diff --git a/atdb/taskdatabase/templates/astronauth/navbar.html b/atdb/taskdatabase/templates/astronauth/navbar.html
index 8b9121f1ed80811702f20c57ddffabcbd4bf9f28..02b3cf1f2168d17136d4b62e9fa2dd921b43735a 100644
--- a/atdb/taskdatabase/templates/astronauth/navbar.html
+++ b/atdb/taskdatabase/templates/astronauth/navbar.html
@@ -28,6 +28,7 @@
                 <li><a class="nav-link" href="{% url 'quality' %}">Quality</a></li>
                 <li><a class="nav-link" href="{% url 'validation' %}">Validation</a></li>
                 <li><a class="nav-link" href="{% url 'failures' %}">Failures</a></li>
+                <li><a class="nav-link" href="{% url 'discarded' %}">Discarded</a></li>
                 <li><a class="nav-link" href="{% url 'finished' %}">Finished</a></li>
                 <li><a class="nav-link" href="{% url 'monitoring' %}">Monitoring</a></li>
                 <li><a class="nav-link" href="{% url 'diagram' %}">Diagram</a></li>
diff --git a/atdb/taskdatabase/templates/taskdatabase/archived/tasks.html b/atdb/taskdatabase/templates/taskdatabase/archived/tasks.html
index 40d040726da1185196d61a31c4020442b38cc3d8..4725101ecd71a85212d8a6a84c7ab6265ba57186 100644
--- a/atdb/taskdatabase/templates/taskdatabase/archived/tasks.html
+++ b/atdb/taskdatabase/templates/taskdatabase/archived/tasks.html
@@ -26,9 +26,9 @@
                 </td>
                 <td>
                     <a class="open-modal btn btn-primary btn-sm"
-                           href="{% url 'workflow-details' task.workflow %}"
-                           data-popup-url="{% url 'workflow-details' task.workflow %}"
-                           target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow }}
+                           href="{% url 'workflow-details' task.workflow.id %}"
+                           data-popup-url="{% url 'workflow-details' task.workflow.id %}"
+                           target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow.id }}
                         </a></td>
                 </td>
                 {% if task.resume  %}
diff --git a/atdb/taskdatabase/templates/taskdatabase/discarded/headers.html b/atdb/taskdatabase/templates/taskdatabase/discarded/headers.html
new file mode 100644
index 0000000000000000000000000000000000000000..765c5664d54b4df4e72ab6e4be7df8cec6141aa1
--- /dev/null
+++ b/atdb/taskdatabase/templates/taskdatabase/discarded/headers.html
@@ -0,0 +1,30 @@
+<tr>
+    <th>
+        <a href="{% url 'sort-tasks' '-pk' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-up"></i></a>
+        ID
+        <a href="{% url 'sort-tasks' 'id' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-down"></i></a>
+    </th>
+    <th>Details</th>
+     <th>
+        <a href="{% url 'sort-tasks' '-status' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-up"></i></a>
+        Status
+        <a href="{% url 'sort-tasks' 'status' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-down"></i></a>
+    </th>
+    <th>
+        <a href="{% url 'sort-tasks' '-project' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-up"></i></a>
+        Project
+        <a href="{% url 'sort-tasks' 'project' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-down"></i></a>
+    </th>
+    <th>
+        <a href="{% url 'sort-tasks' '-sas_id' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-up"></i></a>
+        SAS_ID
+        <a href="{% url 'sort-tasks' 'sas_id' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-down"></i></a>
+    </th>
+    <th>
+        <a href="{% url 'sort-tasks' '-filter' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-up"></i></a>
+        Filter
+        <a href="{% url 'sort-tasks' 'filter' 'discarded' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-down"></i></a>
+    </th>
+    <th>Cleanup Policy</th>
+    <th>Remarks</th>
+</tr>
\ No newline at end of file
diff --git a/atdb/taskdatabase/templates/taskdatabase/discarded/page.html b/atdb/taskdatabase/templates/taskdatabase/discarded/page.html
new file mode 100644
index 0000000000000000000000000000000000000000..79fbe26f757558e5bba6c1cf6f491010ff069492
--- /dev/null
+++ b/atdb/taskdatabase/templates/taskdatabase/discarded/page.html
@@ -0,0 +1,51 @@
+{% extends 'taskdatabase/base.html' %}
+{% load static %}
+
+{% block myBlock %}
+
+<div class="container-fluid details-container">
+      <div class="card">
+       <div class="card-body">
+        <div class="row">
+            <div class="col-8">
+                <h3>Discarded</h3>
+                These the discarded tasks, invisible in the rest of ATDB.
+                <td>{% include 'taskdatabase/filter/search.html' %}</td>
+                <hr>
+            </div>
+        </div>
+        <div class="row">
+        <div class="col-sm-12 col-md-12 col-lg-12">
+            {% include 'taskdatabase/pagination.html' %}
+            &nbsp;
+            {% if my_tasks %}
+            <div class="panel panel-success">
+
+                <div class="panel-body">
+
+                    <table class="table table-striped table-bordered table-sm">
+                        <thead>
+                        {% include 'taskdatabase/discarded/headers.html' %}
+                        </thead>
+                        <tbody>
+                        {% include 'taskdatabase/discarded/tasks.html' %}
+                        </tbody>
+                    </table>
+                    {% else %}
+                    <p>No recent Tasks.</p>
+                    {% endif %}
+
+                </div>
+            </div>
+            {% include 'taskdatabase/pagination.html' %}
+           </div>
+        </div>
+       </div>
+      </div>
+</div>
+
+{% include 'taskdatabase/no_refresh.html' %}
+
+
+{% endblock %}
+
diff --git a/atdb/taskdatabase/templates/taskdatabase/discarded/tasks.html b/atdb/taskdatabase/templates/taskdatabase/discarded/tasks.html
new file mode 100644
index 0000000000000000000000000000000000000000..7dce28399612329adc74422498d626f0749facea
--- /dev/null
+++ b/atdb/taskdatabase/templates/taskdatabase/discarded/tasks.html
@@ -0,0 +1,48 @@
+{% load static %}
+{% for task in my_tasks %}
+
+        {% if task.status != "removed_invisible" %}
+        <div class="row">
+            <tr>
+
+                <td>
+                    <a href="{{ task.get_absolute_url }}" target="_blank">{{ task.id }} </a>
+                </td>
+                <td>
+                    {% if user.is_authenticated %}
+                        <a class="btn btn-primary btn-sm"
+                           href="{% url 'task-details' task.id my_tasks.number %}"
+                           data-popup-url="{% url 'task-details' task.id my_tasks.number %}"
+                           ><i class="fas fa-list"></i> Details
+                        </a>&nbsp;
+                    {% endif %}
+                    {% if task.has_quality %}
+                            <a class="open-modal btn btn-primary btn-sm"
+                               href="{% url 'task-quality' task.id my_tasks.number %}"
+                               data-popup-url="{% url 'task-quality' task.id my_tasks.number %}"
+                               ><i class="fas fa-balance-scale"></i> Quality
+                            </a>&nbsp;
+                    {% endif %}
+                </td>
+
+                {% if task.resume  %}
+                    <td class="bigger">{{ task.status }}</td>
+                {% endif %}
+                {% if not task.resume  %}
+                    <td class="bigger">{{ task.status }} (holding)</td>
+                {% endif %}
+
+                <td>{{ task.project }}</td>
+                <td>{{ task.sas_id }}</td>
+
+                <td>{{ task.filter }} </td>
+                <td>{{ task.cleanup_policy }} </td>
+                <td>{{ task.remarks }} </td>
+                </tr>
+            </div>
+        {% endif %}
+
+{% endfor %}
+
+{% include "taskdatabase/modal/modal_script.html" %}
+{% include "taskdatabase/modal/modal.html" %}
\ No newline at end of file
diff --git a/atdb/taskdatabase/templates/taskdatabase/failures/confirm_discard.html b/atdb/taskdatabase/templates/taskdatabase/failures/confirm_discard.html
new file mode 100644
index 0000000000000000000000000000000000000000..f69b24b98f03639f86d3744f775ab8715240dbad
--- /dev/null
+++ b/atdb/taskdatabase/templates/taskdatabase/failures/confirm_discard.html
@@ -0,0 +1,24 @@
+{% extends 'taskdatabase/base.html' %}
+
+{% block myBlock %}
+<div class="container-fluid details-container">
+
+
+  <div class="card">
+       <div class="card-body">
+
+            <form action="./{{ page }}" method="POST">{% csrf_token %}
+                <div class="text-center">
+                <h4>Are you sure you want to discard task {{ task.id }}?</h4>
+
+                <p>
+                    <button class="btn btn-success btn-sm" type="submit"><i class="fas fa-check"></i> OK</button>
+                    <a href="{% url 'failures' %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-times-circle"></i> Cancel</a>&nbsp
+                </p>
+                    </div>
+            </form>
+
+       </div>
+  </div>
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/atdb/taskdatabase/templates/taskdatabase/failures/tasks.html b/atdb/taskdatabase/templates/taskdatabase/failures/tasks.html
index 51bd7cabba1fc72a5ae5fea04e123f93f51f29f8..3d167b86877a4f427f6595eea4bd35814d25e0cc 100644
--- a/atdb/taskdatabase/templates/taskdatabase/failures/tasks.html
+++ b/atdb/taskdatabase/templates/taskdatabase/failures/tasks.html
@@ -20,7 +20,7 @@
                             <a class="open-modal btn btn-primary btn-sm"
                                href="{% url 'task-quality' task.id my_tasks.number %}"
                                data-popup-url="{% url 'task-quality' task.id my_tasks.number %}"
-                               ><i class="fas fa-balance-scale-right"></i> Quality
+                               ><i class="fas fa-balance-scale"></i> Quality
                             </a>&nbsp;
                     {% endif %}
                 </td>
@@ -38,7 +38,11 @@
                 <td>{{ task.filter }} </td>
 
 
-                <td>{% include "taskdatabase/failures/retry_buttons.html" %}</td>
+                <td>
+                    {% include "taskdatabase/failures/retry_buttons.html" %}
+                    <a href="{% url 'task-discard-view' task.pk 'discarded' my_tasks.number %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-trash-alt"></i> Discard</a>
+
+                </td>
 
                 </tr>
             </div>
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index a1bf1e87502b79b0e24be60140f1abd85806ec44..7a55509e6cb7b9d1634d5ebfd97f4c02795c8c67 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -8,34 +8,30 @@
     {% include 'taskdatabase/filter/filter_buttons.html' %}
     &nbsp;
     <div class="row">
-    <div class="col-sm-12 col-md-12 col-lg-12">
-        {% include 'taskdatabase/pagination.html' %}
-        &nbsp;
-        {% if my_tasks %}
-        <div class="panel panel-success">
-
-            <div class="panel-body">
-
-                <table class="table table-striped table-bordered table-sm">
-
-                    <thead>
-                    {% include 'taskdatabase/tasks_headers.html' %}
-                    </thead>
-                    <tbody>
-                    {% include 'taskdatabase/tasks.html' %}
-                    </tbody>
-                </table>
-                {% else %}
-                <p>No recent Tasks.</p>
-                {% endif %}
-
+        <div class="col-sm-12 col-md-12 col-lg-12">
+            {% include 'taskdatabase/pagination.html' %}
+            &nbsp;
+            {% if my_tasks %}
+            <div class="panel panel-success">
+
+                <div class="panel-body">
+                    <table class="table table-striped table-bordered table-sm">
+                        <thead>
+                        {% include 'taskdatabase/tasks_headers.html' %}
+                        </thead>
+                        <tbody>
+                        {% include 'taskdatabase/tasks.html' %}
+                        </tbody>
+                    </table>
+                    {% else %}
+                    <p>No recent Tasks.</p>
+                    {% endif %}
+                </div>
             </div>
+            {% include 'taskdatabase/pagination.html' %}
         </div>
-        {% include 'taskdatabase/pagination.html' %}
-       </div>
     </div>
     <p class="footer"> Version 4 May 2023
-
 </div>
 
 {% include 'taskdatabase/refresh.html' %}
diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks.html b/atdb/taskdatabase/templates/taskdatabase/tasks.html
index ca912c2ce1448c150b1c95a218725da2ef22808d..09f0ec7fe2ad91643e1243b04f63bc7050b7cdac 100644
--- a/atdb/taskdatabase/templates/taskdatabase/tasks.html
+++ b/atdb/taskdatabase/templates/taskdatabase/tasks.html
@@ -26,8 +26,8 @@
             </td>
             <td>
                 <a class="open-modal btn btn-primary btn-sm"
-                       href="{% url 'workflow-details' task.workflow %}"
-                       data-popup-url="{% url 'workflow-details' task.workflow %}"
+                       href="{% url 'workflow-details' task.workflow.id %}"
+                       data-popup-url="{% url 'workflow-details' task.workflow.id %}"
                        target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow.id }}
                     </a></td>
             </td>
diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html b/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html
index 54f6a7844161168f89d0b84ff507b8e6fda2da70..3daf2386b259fd302d334c819d55f0a894fa5e52 100644
--- a/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html
+++ b/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html
@@ -19,8 +19,8 @@
                 <tr class="{{ task.status }}"><td><b>status</b></td><td>{{ task.status }}</td></tr>
                 <tr><td><b>workflow</b></td><td>
                     <a class="open-modal btn btn-primary btn-sm"
-                       href="{% url 'workflow-details' task.workflow %}"
-                       data-popup-url="{% url 'workflow-details' task.workflow %}"
+                       href="{% url 'workflow-details' task.workflow.id %}"
+                       data-popup-url="{% url 'workflow-details' task.workflow.id %}"
                        target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow }}
                     </a>
                     {% if user.is_staff %}
@@ -63,12 +63,13 @@
                 <tr><td><b>creationTime</b></td><td>{{ task.creationTime|date:"Y-m-d H:i:s" }}</td></tr>
 
                 <tr><td><b>purge_policy</b></td><td>{{ task.purge_policy }}</td></tr>
+                <tr><td><b>cleanup_policy</b></td><td>{{ task.cleanup_policy }}</td></tr>
                 <tr><td><b>resume</b></td><td>{{ task.resume }}</td></tr>
                 <tr><td><b>stage_request_id</b></td><td>{{ task.stage_request_id }}</td></tr>
                 <tr><td><b>size_to_process</b></td><td>{{ task.size_to_process|filesizeformat }}</td></tr>
                 <tr><td><b>size_processed</b></td><td>{{ task.size_processed|filesizeformat }}</td></tr>
                 <tr><td><b>total_processing_time</b></td><td>{{ task.total_processing_time }}</td></tr>
-
+                <tr><td><b>remarks</b></td><td>{{ task.remarks }}</td></tr>
                </tbody>
            </table>
      </div>
diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py
index 221d39ac911e24a19cd698493a7564de432c4c8a..636b2f38c48b033a2a3415346d162e7c394f36c8 100644
--- a/atdb/taskdatabase/urls.py
+++ b/atdb/taskdatabase/urls.py
@@ -18,6 +18,7 @@ urlpatterns = [
     path('quality', views.ShowQualityPage.as_view(), name='quality'),
     path('validation', views.ShowValidationPage.as_view(), name='validation'),
     path('failures', views.ShowFailuresPage.as_view(), name='failures'),
+    path('discarded', views.ShowDiscardedPage.as_view(), name='discarded'),
     path('finished', views.ShowFinishedPage.as_view(), name='finished'),
 
     path('task_details/<int:id>/<page>', views.TaskDetails, name='task-details'),
@@ -95,7 +96,8 @@ urlpatterns = [
     path('tasks/<int:pk>/setstatus/<new_status>', views.TaskSetStatus, name='task-details-setstatus'),
 
     path('tasks/<int:pk>/validate/<quality>/<new_status>/<page>', views.TaskValidate, name='task-validate-view'),
-    path('tasks/<int:pk>/retry//<new_status>/<page>', views.TaskRetry, name='task-retry-view'),
+    path('tasks/<int:pk>/retry/<new_status>/<page>', views.TaskRetry, name='task-retry-view'),
+    path('tasks/<int:pk>/discard/<new_status>/<page>', views.TaskDiscard, name='task-discard-view'),
 
     path('tasks/<int:pk>/change_priority/<priority_change>/<page>', views.ChangePriority, name='task-change-priority'),
     path('tasks/<int:pk>/change_priority/<priority_change>', views.ChangePriority, name='task-change-priority'),
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index 1393419915a1e1c8926b4b02b984163e40c64c79..e07be8eb2f4e7f13cf21c17549f08175a4d8a1f9 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -405,6 +405,45 @@ class ShowFailuresPage(ListView):
         return tasks
 
 
+class ShowDiscardedPage(ListView):
+    """
+    This shows the tasks that are discarded
+    Note that the global filter is also applied
+    """
+    template_name = 'taskdatabase/discarded/page.html'
+
+    # by default this returns the list in an object called object_list, so use 'object_list' in the html page.
+    # but if 'context_object_name' is defined, then this returned list is named and can be accessed that way in html.
+    context_object_name = 'my_tasks'
+
+    def get_queryset(self):
+
+        discarded_tasks = Task.objects.filter(status__icontains='discarded')
+        tasks = get_filtered_tasks(self.request, discarded_tasks)
+
+        paginator = Paginator(tasks, config.TASKS_PER_PAGE)  # Show 50 tasks per page
+        page = self.request.GET.get('page')
+
+        try:
+            # check if there was a page on the session, if so, use it.
+            if page == None:
+                page = self.request.session['page']
+                self.request.session['page'] = None
+        except:
+            pass
+
+        try:
+            tasks = paginator.page(page)
+        except PageNotAnInteger:
+            # If page is not an integer, deliver first page.
+            tasks = paginator.page(1)
+        except EmptyPage:
+            # If page is out of range (e.g. 9999), deliver last page of results.
+            tasks = paginator.page(paginator.num_pages)
+
+        return tasks
+
+
 class ShowFinishedPage(ListView):
     """
     This shows the tasks that are archived
@@ -1025,7 +1064,7 @@ def TaskSetStatus(request, pk, new_status, page=0):
 
 @login_required
 def TaskValidate(request, pk, quality, new_status, page=0):
-    model = Task
+
     task = Task.objects.get(pk=pk)
 
     # find all tasks with the same SAS_ID, and set this quality to all of them
@@ -1047,7 +1086,7 @@ def TaskValidate(request, pk, quality, new_status, page=0):
 
 @login_required
 def TaskRetry(request, pk, new_status, page=0):
-    model = Task
+
     task = Task.objects.get(pk=pk)
     task.new_status = new_status
     task.save()
@@ -1059,6 +1098,36 @@ def TaskRetry(request, pk, new_status, page=0):
         # redirect to tasks list
         return redirect_with_params('failures', '?page=' + page)
 
+@login_required
+def TaskDiscard(request, pk, new_status, page=0):
+    # TODO: when the cleanup service in place,
+    # make a change in this line in failures\tasks.html. Change 'discard' into 'discarded'.
+    # <a href="{% url 'task-discard-view' task.pk 'discarded' my_tasks.number %}"
+
+    task = Task.objects.get(pk=pk)
+
+    if request.method == "POST":
+
+        # set the cleanup_policy, which states what the cleanup service should do with it.
+        task.cleanup_policy = task.status
+
+        # also add an annotation
+        try:
+            task.remarks['discard_reason'] = task.status
+        except:
+            task.remarks = {}
+            task.remarks['discard_reason'] = task.status
+
+        # set the status to discard and save it
+        task.new_status = new_status
+        task.save()
+
+        # return to the failures page
+        return redirect_with_params('failures', '?page=' + page)
+
+    # if not a POST, then render the confirmaton page, which will return to this function with a POST.
+    return render(request, "taskdatabase/failures/confirm_discard.html", {'task': task, 'page': page})
+
 
 # set a filter value in the session, used later by the 'get_searched_tasks' mechanism
 def TaskSetFilter(request, filter, redirect_to_page):