From e645b31b32bcae0b9c52e6a78272155ea05477be Mon Sep 17 00:00:00 2001 From: Jonathan de Jong Date: Tue, 26 Aug 2025 07:53:20 +0200 Subject: [PATCH 01/23] change gitea permissions to new instances (#1832) --- apps/dokploy/utils/gitea-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/utils/gitea-utils.ts b/apps/dokploy/utils/gitea-utils.ts index ab7b82dcc..6099aaa45 100644 --- a/apps/dokploy/utils/gitea-utils.ts +++ b/apps/dokploy/utils/gitea-utils.ts @@ -22,7 +22,7 @@ export const getGiteaOAuthUrl = ( } const redirectUri = `${baseUrl}/api/providers/gitea/callback`; - const scopes = "repo repo:status read:user read:org"; + const scopes = "read:repository read:user read:organization"; return `${giteaUrl}/login/oauth/authorize?client_id=${clientId}&redirect_uri=${encodeURIComponent( redirectUri, From 0c37d7b3ee512d45018eaf72eba194aa79b2c3db Mon Sep 17 00:00:00 2001 From: vytenisstaugaitis <30520456+vytenisstaugaitis@users.noreply.github.com> Date: Thu, 9 Oct 2025 11:27:07 +0300 Subject: [PATCH 02/23] fix(notifications): prevent blank email field on dialog reopen --- .../dashboard/settings/notifications/handle-notifications.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx index 325383069..f43ba51ca 100644 --- a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx +++ b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx @@ -208,10 +208,10 @@ export const HandleNotifications = ({ notificationId }: Props) => { }); useEffect(() => { - if (type === "email") { + if (type === "email" && fields.length === 0) { append(""); } - }, [type, append]); + }, [type, append, fields.length]); useEffect(() => { if (notification) { From ca6a93fdf6188e43c82d3b6cb9f944117936ffe6 Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Thu, 9 Oct 2025 16:09:13 +0200 Subject: [PATCH 03/23] feat: Bump default MongoDB docker image version to 7 The previous version of this file used `mongo:6` which reached EOL on July 1st 2025 More at : https://www.mongodb.com/legal/support-policy/lifecycles --- apps/dokploy/components/dashboard/project/add-database.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/components/dashboard/project/add-database.tsx b/apps/dokploy/components/dashboard/project/add-database.tsx index 064e93544..c0600a2d9 100644 --- a/apps/dokploy/components/dashboard/project/add-database.tsx +++ b/apps/dokploy/components/dashboard/project/add-database.tsx @@ -55,7 +55,7 @@ import { api } from "@/utils/api"; type DbType = typeof mySchema._type.type; const dockerImageDefaultPlaceholder: Record = { - mongo: "mongo:6", + mongo: "mongo:7", mariadb: "mariadb:11", mysql: "mysql:8", postgres: "postgres:15", From fd5fa329643124d759b5dff4278d35bf518a57e6 Mon Sep 17 00:00:00 2001 From: Simon Loir Date: Sat, 11 Oct 2025 16:27:11 +0200 Subject: [PATCH 04/23] fix: load remote middleware on app delete if a serverId is provided --- packages/server/src/utils/traefik/middleware.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/server/src/utils/traefik/middleware.ts b/packages/server/src/utils/traefik/middleware.ts index 4897b94ee..730ea9b8c 100644 --- a/packages/server/src/utils/traefik/middleware.ts +++ b/packages/server/src/utils/traefik/middleware.ts @@ -46,8 +46,14 @@ export const deleteMiddleware = ( }; export const deleteAllMiddlewares = async (application: ApplicationNested) => { - const config = loadMiddlewares(); - const { security, appName, redirects } = application; + const { security, appName, redirects, serverId } = application; + let config: FileConfig; + + if (serverId) { + config = await loadRemoteMiddlewares(serverId); + } else { + config = loadMiddlewares(); + } if (config.http?.middlewares) { if (security.length > 0) { @@ -62,8 +68,8 @@ export const deleteAllMiddlewares = async (application: ApplicationNested) => { } } - if (application.serverId) { - await writeTraefikConfigRemote(config, "middlewares", application.serverId); + if (serverId) { + await writeTraefikConfigRemote(config, "middlewares", serverId); } else { writeMiddleware(config); } From 7988de64c85c55d2b40fae7985421b1f4081fa08 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sat, 11 Oct 2025 14:32:31 +0000 Subject: [PATCH 05/23] [autofix.ci] apply automated fixes --- packages/server/src/utils/traefik/middleware.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/server/src/utils/traefik/middleware.ts b/packages/server/src/utils/traefik/middleware.ts index 730ea9b8c..5a9d28805 100644 --- a/packages/server/src/utils/traefik/middleware.ts +++ b/packages/server/src/utils/traefik/middleware.ts @@ -49,11 +49,11 @@ export const deleteAllMiddlewares = async (application: ApplicationNested) => { const { security, appName, redirects, serverId } = application; let config: FileConfig; - if (serverId) { - config = await loadRemoteMiddlewares(serverId); - } else { - config = loadMiddlewares(); - } + if (serverId) { + config = await loadRemoteMiddlewares(serverId); + } else { + config = loadMiddlewares(); + } if (config.http?.middlewares) { if (security.length > 0) { From 883e9f0fd1a1a40a62fd2c0db19ce1b2f4558edf Mon Sep 17 00:00:00 2001 From: Rodrigo Santos Date: Sat, 11 Oct 2025 19:20:46 +0100 Subject: [PATCH 06/23] fix: profile picture fit --- .../components/dashboard/impersonation/impersonation-bar.tsx | 1 + apps/dokploy/components/layouts/user-nav.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/apps/dokploy/components/dashboard/impersonation/impersonation-bar.tsx b/apps/dokploy/components/dashboard/impersonation/impersonation-bar.tsx index 7804e9add..a5aae598c 100644 --- a/apps/dokploy/components/dashboard/impersonation/impersonation-bar.tsx +++ b/apps/dokploy/components/dashboard/impersonation/impersonation-bar.tsx @@ -281,6 +281,7 @@ export const ImpersonationBar = () => {
diff --git a/apps/dokploy/components/layouts/user-nav.tsx b/apps/dokploy/components/layouts/user-nav.tsx index e476a5f50..ca5854196 100644 --- a/apps/dokploy/components/layouts/user-nav.tsx +++ b/apps/dokploy/components/layouts/user-nav.tsx @@ -44,6 +44,7 @@ export const UserNav = () => { > From d0fd8e7c72e0e3abc3495b268baa1709d8356592 Mon Sep 17 00:00:00 2001 From: randomperson12344 <4dennisk@gmail.com> Date: Sun, 12 Oct 2025 20:59:52 -0700 Subject: [PATCH 07/23] fix: correct typos --- .../application/general/generic/save-bitbucket-provider.tsx | 2 +- .../application/general/generic/save-github-provider.tsx | 2 +- .../application/general/generic/save-gitlab-provider.tsx | 2 +- apps/dokploy/components/dashboard/compose/delete-service.tsx | 2 +- .../compose/general/generic/save-bitbucket-provider-compose.tsx | 2 +- .../compose/general/generic/save-github-provider-compose.tsx | 2 +- .../compose/general/generic/save-gitlab-provider-compose.tsx | 2 +- apps/dokploy/pages/register.tsx | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx index 6f6db5dd1..1f54ddd58 100644 --- a/apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx +++ b/apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx @@ -150,7 +150,7 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => { enableSubmodules: data.enableSubmodules || false, }) .then(async () => { - toast.success("Service Provided Saved"); + toast.success("Service Provider Saved"); await refetch(); }) .catch(() => { diff --git a/apps/dokploy/components/dashboard/application/general/generic/save-github-provider.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-github-provider.tsx index 9a4b92ce1..80d6850ca 100644 --- a/apps/dokploy/components/dashboard/application/general/generic/save-github-provider.tsx +++ b/apps/dokploy/components/dashboard/application/general/generic/save-github-provider.tsx @@ -149,7 +149,7 @@ export const SaveGithubProvider = ({ applicationId }: Props) => { enableSubmodules: data.enableSubmodules, }) .then(async () => { - toast.success("Service Provided Saved"); + toast.success("Service Provider Saved"); await refetch(); }) .catch(() => { diff --git a/apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx index cb7209f8a..d6f65caf3 100644 --- a/apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx +++ b/apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx @@ -167,7 +167,7 @@ export const SaveGitlabProvider = ({ applicationId }: Props) => { enableSubmodules: data.enableSubmodules, }) .then(async () => { - toast.success("Service Provided Saved"); + toast.success("Service Provider Saved"); await refetch(); }) .catch(() => { diff --git a/apps/dokploy/components/dashboard/compose/delete-service.tsx b/apps/dokploy/components/dashboard/compose/delete-service.tsx index e75aad5e5..5c8577dff 100644 --- a/apps/dokploy/components/dashboard/compose/delete-service.tsx +++ b/apps/dokploy/components/dashboard/compose/delete-service.tsx @@ -104,7 +104,7 @@ export const DeleteService = ({ id, type }: Props) => { push( `/dashboard/project/${result?.environment?.projectId}/environment/${result?.environment?.environmentId}`, ); - toast.success("deleted successfully"); + toast.success("Service deleted successfully"); setIsOpen(false); }) .catch(() => { diff --git a/apps/dokploy/components/dashboard/compose/general/generic/save-bitbucket-provider-compose.tsx b/apps/dokploy/components/dashboard/compose/general/generic/save-bitbucket-provider-compose.tsx index d2a5d622a..06c88fff4 100644 --- a/apps/dokploy/components/dashboard/compose/general/generic/save-bitbucket-provider-compose.tsx +++ b/apps/dokploy/components/dashboard/compose/general/generic/save-bitbucket-provider-compose.tsx @@ -152,7 +152,7 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => { enableSubmodules: data.enableSubmodules, }) .then(async () => { - toast.success("Service Provided Saved"); + toast.success("Service Provider Saved"); await refetch(); }) .catch(() => { diff --git a/apps/dokploy/components/dashboard/compose/general/generic/save-github-provider-compose.tsx b/apps/dokploy/components/dashboard/compose/general/generic/save-github-provider-compose.tsx index fa7f40b96..5ad950e4c 100644 --- a/apps/dokploy/components/dashboard/compose/general/generic/save-github-provider-compose.tsx +++ b/apps/dokploy/components/dashboard/compose/general/generic/save-github-provider-compose.tsx @@ -151,7 +151,7 @@ export const SaveGithubProviderCompose = ({ composeId }: Props) => { triggerType: data.triggerType, }) .then(async () => { - toast.success("Service Provided Saved"); + toast.success("Service Provider Saved"); await refetch(); }) .catch(() => { diff --git a/apps/dokploy/components/dashboard/compose/general/generic/save-gitlab-provider-compose.tsx b/apps/dokploy/components/dashboard/compose/general/generic/save-gitlab-provider-compose.tsx index 9ace74ff6..933abd1a2 100644 --- a/apps/dokploy/components/dashboard/compose/general/generic/save-gitlab-provider-compose.tsx +++ b/apps/dokploy/components/dashboard/compose/general/generic/save-gitlab-provider-compose.tsx @@ -160,7 +160,7 @@ export const SaveGitlabProviderCompose = ({ composeId }: Props) => { enableSubmodules: data.enableSubmodules, }) .then(async () => { - toast.success("Service Provided Saved"); + toast.success("Service Provider Saved"); await refetch(); }) .catch(() => { diff --git a/apps/dokploy/pages/register.tsx b/apps/dokploy/pages/register.tsx index 60a3d8de4..4452eb1ea 100644 --- a/apps/dokploy/pages/register.tsx +++ b/apps/dokploy/pages/register.tsx @@ -101,7 +101,7 @@ const Register = ({ isCloud }: Props) => { setIsError(true); setError(error.message || "An error occurred"); } else { - toast.success("User registered successfuly", { + toast.success("User registered successfully", { duration: 2000, }); if (!isCloud) { From 78a9fe9dc58ec2a129c0c681bde5cb1a8fe62a8b Mon Sep 17 00:00:00 2001 From: Mohammed Imran Date: Tue, 14 Oct 2025 23:31:41 +0530 Subject: [PATCH 08/23] feat: add a button to copy backup codes to clipboard --- .../dashboard/settings/profile/enable-2fa.tsx | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx b/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx index e630ec4f8..293fc62f0 100644 --- a/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx +++ b/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx @@ -1,5 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; -import { Fingerprint, QrCode } from "lucide-react"; +import { CopyIcon, Fingerprint, QrCode } from "lucide-react"; import QRCode from "qrcode"; import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; @@ -29,6 +29,12 @@ import { InputOTPGroup, InputOTPSlot, } from "@/components/ui/input-otp"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; import { authClient } from "@/lib/auth-client"; import { api } from "@/utils/api"; @@ -281,7 +287,33 @@ export const Enable2FA = () => { {backupCodes && backupCodes.length > 0 && (
-

Backup Codes

+
+

Backup Codes

+ + + + + + +

Copy

+
+
+
+
{backupCodes.map((code, index) => ( Date: Wed, 15 Oct 2025 04:50:53 +0300 Subject: [PATCH 09/23] fix: resources tooltips triggers form submission --- .../dashboard/application/advanced/show-resources.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/advanced/show-resources.tsx b/apps/dokploy/components/dashboard/application/advanced/show-resources.tsx index 25040067b..65616468f 100644 --- a/apps/dokploy/components/dashboard/application/advanced/show-resources.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/show-resources.tsx @@ -150,7 +150,7 @@ export const ShowResources = ({ id, type }: Props) => { render={({ field }) => { return ( -
+
e.preventDefault()}> Memory Limit @@ -182,7 +182,7 @@ export const ShowResources = ({ id, type }: Props) => { name="memoryReservation" render={({ field }) => ( -
+
e.preventDefault()}> Memory Reservation @@ -215,7 +215,7 @@ export const ShowResources = ({ id, type }: Props) => { render={({ field }) => { return ( -
+
e.preventDefault()}> CPU Limit @@ -249,7 +249,7 @@ export const ShowResources = ({ id, type }: Props) => { render={({ field }) => { return ( -
+
e.preventDefault()}> CPU Reservation From 5fd39843f73073b2c6a7f984283bc8604909aa2c Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 03:56:14 +0000 Subject: [PATCH 10/23] [autofix.ci] apply automated fixes --- .../application/advanced/show-resources.tsx | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/advanced/show-resources.tsx b/apps/dokploy/components/dashboard/application/advanced/show-resources.tsx index 65616468f..3beedcdbc 100644 --- a/apps/dokploy/components/dashboard/application/advanced/show-resources.tsx +++ b/apps/dokploy/components/dashboard/application/advanced/show-resources.tsx @@ -150,7 +150,10 @@ export const ShowResources = ({ id, type }: Props) => { render={({ field }) => { return ( -
e.preventDefault()}> +
e.preventDefault()} + > Memory Limit @@ -182,7 +185,10 @@ export const ShowResources = ({ id, type }: Props) => { name="memoryReservation" render={({ field }) => ( -
e.preventDefault()}> +
e.preventDefault()} + > Memory Reservation @@ -215,7 +221,10 @@ export const ShowResources = ({ id, type }: Props) => { render={({ field }) => { return ( -
e.preventDefault()}> +
e.preventDefault()} + > CPU Limit @@ -249,7 +258,10 @@ export const ShowResources = ({ id, type }: Props) => { render={({ field }) => { return ( -
e.preventDefault()}> +
e.preventDefault()} + > CPU Reservation From ceb4cc453eed0dc017888cd09cc4b2b05724646c Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 15 Oct 2025 22:09:25 -0600 Subject: [PATCH 11/23] feat: add LambdaTest sponsorship to README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 8faf22a35..d60962cff 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,10 @@ For detailed documentation, visit [docs.dokploy.com](https://docs.dokploy.com).
Hostinger LX Aer + + + +
From 901013ccd1e4330ae816e2dc4dfbbb08d70b9a08 Mon Sep 17 00:00:00 2001 From: Mohammed Imran Date: Thu, 16 Oct 2025 10:29:10 +0530 Subject: [PATCH 12/23] fix: ensure button type is correctly set when not explicitly defined --- apps/dokploy/components/ui/button.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/dokploy/components/ui/button.tsx b/apps/dokploy/components/ui/button.tsx index d2db30cd2..f504b4c2d 100644 --- a/apps/dokploy/components/ui/button.tsx +++ b/apps/dokploy/components/ui/button.tsx @@ -55,6 +55,8 @@ const Button = React.forwardRef( ref, ) => { const Comp = asChild ? Slot : "button"; + const type = props.type ?? undefined; + return ( <> ( ref={ref} {...props} disabled={isLoading || props.disabled} + type={type} > {isLoading && } {children} From 8338b27ab8d3a81ab21cbbadc246fed74ef48b65 Mon Sep 17 00:00:00 2001 From: Mohammed Imran Date: Thu, 16 Oct 2025 10:30:01 +0530 Subject: [PATCH 13/23] feat: add functionality to download refactor the copy feature to use `copy-to-clipboard`. --- .../dashboard/settings/profile/enable-2fa.tsx | 92 ++++++++++++++----- 1 file changed, 67 insertions(+), 25 deletions(-) diff --git a/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx b/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx index 293fc62f0..37edccb64 100644 --- a/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx +++ b/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx @@ -1,5 +1,6 @@ import { zodResolver } from "@hookform/resolvers/zod"; -import { CopyIcon, Fingerprint, QrCode } from "lucide-react"; +import copy from "copy-to-clipboard"; +import { CopyIcon, DownloadIcon, Fingerprint, QrCode } from "lucide-react"; import QRCode from "qrcode"; import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; @@ -184,6 +185,34 @@ export const Enable2FA = () => { } }; + const handleDownloadBackupCodes = () => { + if (!backupCodes || backupCodes.length === 0) { + toast.error("No backup codes to download."); + return; + } + + const backupCodesText = backupCodes.join("\n"); + const date = new Date(); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const day = String(date.getDate()).padStart(2, "0"); + const filename = `dokploy-2fa-backup-codes-${year}${month}${day}.txt`; + const blob = new Blob([backupCodesText], { type: "text/plain" }); + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); + }; + + const handleCopyBackupCodes = () => { + copy(backupCodes.join("\n")); + toast.success("Backup codes copied to clipboard"); + }; + return ( @@ -289,30 +318,43 @@ export const Enable2FA = () => {

Backup Codes

- - - - - - -

Copy

-
-
-
+
+ + + + + + +

Copy

+
+
+
+ + + + + + + +

Download

+
+
+
+
{backupCodes.map((code, index) => ( From 342b1d676e24d27254368222bc06df3a6fc50b39 Mon Sep 17 00:00:00 2001 From: HarikrishnanD Date: Thu, 16 Oct 2025 16:25:32 +0530 Subject: [PATCH 14/23] fix(schedules): prevent action buttons overflow for long commands --- .../application/schedules/show-schedules.tsx | 34 +++++++------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx b/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx index 3209b6e03..0b71be39c 100644 --- a/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx +++ b/apps/dokploy/components/dashboard/application/schedules/show-schedules.tsx @@ -44,14 +44,12 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { }, { enabled: !!id, - }, + } ); const utils = api.useUtils(); - const { mutateAsync: deleteSchedule, isLoading: isDeleting } = api.schedule.delete.useMutation(); - const { mutateAsync: runManually, isLoading } = api.schedule.runManually.useMutation(); @@ -67,7 +65,6 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { Schedule tasks to run automatically at specified intervals.
- {schedules && schedules.length > 0 && ( )} @@ -75,7 +72,7 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { {isLoadingSchedules ? ( -
+
Loading scheduled tasks... @@ -91,13 +88,13 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { return (
-
+
-
+

{schedule.name} @@ -132,27 +129,25 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { )}

{schedule.command && ( -
- - +
+ + {schedule.command}
)}
- -
+
- @@ -163,13 +158,12 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { isLoading={isLoading} onClick={async () => { toast.success("Schedule run successfully"); - await runManually({ scheduleId: schedule.scheduleId, }) .then(async () => { await new Promise((resolve) => - setTimeout(resolve, 1500), + setTimeout(resolve, 1500) ); refetchSchedules(); }) @@ -178,19 +172,17 @@ export const ShowSchedules = ({ id, scheduleType = "application" }: Props) => { }); }} > - + Run Manual Schedule - - {