diff --git a/app/controllers/maintenance_tasks/application_controller.rb b/app/controllers/maintenance_tasks/application_controller.rb
index 0140cd49..0f672ad7 100644
--- a/app/controllers/maintenance_tasks/application_controller.rb
+++ b/app/controllers/maintenance_tasks/application_controller.rb
@@ -31,5 +31,9 @@ class ApplicationController < MaintenanceTasks.parent_controller.constantize
end
protect_from_forgery with: :exception
+
+ rescue_from Task::NotFoundError do |error|
+ render("maintenance_tasks/not_found", status: :not_found)
+ end
end
end
diff --git a/app/views/maintenance_tasks/not_found.html.erb b/app/views/maintenance_tasks/not_found.html.erb
new file mode 100644
index 00000000..2d8758b6
--- /dev/null
+++ b/app/views/maintenance_tasks/not_found.html.erb
@@ -0,0 +1,9 @@
+<% content_for :page_title, "Not Found" %>
+
+
+
Task Not Found
+
The task you are looking for does not exist or has been deleted.
+
+ <%= link_to "Back to Tasks", tasks_path, class: "button is-primary is-rounded" %>
+
+
diff --git a/lib/maintenance_tasks/engine.rb b/lib/maintenance_tasks/engine.rb
index 185a22f3..847a86a4 100644
--- a/lib/maintenance_tasks/engine.rb
+++ b/lib/maintenance_tasks/engine.rb
@@ -32,9 +32,5 @@ class Engine < ::Rails::Engine
config.after_initialize do
JobIteration.max_job_runtime ||= 5.minutes
end
-
- config.action_dispatch.rescue_responses.merge!(
- "MaintenanceTasks::Task::NotFoundError" => :not_found,
- )
end
end
diff --git a/test/system/maintenance_tasks/tasks_test.rb b/test/system/maintenance_tasks/tasks_test.rb
index 5e973d87..584f90d0 100644
--- a/test/system/maintenance_tasks/tasks_test.rb
+++ b/test/system/maintenance_tasks/tasks_test.rb
@@ -259,6 +259,15 @@ class TasksTest < ApplicationSystemTestCase
assert_button "Run", disabled: true
end
+ test "show a not found Task" do
+ visit maintenance_tasks_path + "/tasks/Maintenance::DoesNotExist"
+
+ assert_title "Not Found"
+ assert_text "Task Not Found"
+ assert_text "The task you are looking for does not exist or has been deleted."
+ assert_link "Back to Tasks"
+ end
+
test "visit main page through iframe" do
visit root_path