diff --git a/src/lang/en/tasks.json b/src/lang/en/tasks.json
index 28635aaa3..3cf92f2ae 100644
--- a/src/lang/en/tasks.json
+++ b/src/lang/en/tasks.json
@@ -7,6 +7,7 @@
"undone": "Running",
"clear_succeeded": "Clear Succeeded",
"retry": "Retry",
+ "retry_failed": "Retry Failed",
"state": {
"0": "Pending",
"1": "Running",
diff --git a/src/pages/manage/tasks/Tasks.tsx b/src/pages/manage/tasks/Tasks.tsx
index 783ec26c0..ed3eeccda 100644
--- a/src/pages/manage/tasks/Tasks.tsx
+++ b/src/pages/manage/tasks/Tasks.tsx
@@ -41,6 +41,9 @@ export const Tasks = (props: TasksProps) => {
const [clearSucceededLoading, clearSucceeded] = useFetch(
(): PEmptyResp => r.post(`/admin/task/${props.type}/clear_succeeded`),
)
+ const [retryFailedLoading, retryFailed] = useFetch(
+ (): PEmptyResp => r.post(`/admin/task/${props.type}/retry_failed`),
+ )
const [page, setPage] = createSignal(1)
const pageSize = 20
const curTasks = createMemo(() => {
@@ -57,6 +60,16 @@ export const Tasks = (props: TasksProps) => {
{t(`global.refresh`)}
+