From 2f8d80062f225abe2e1a1ec9e255beb806401289 Mon Sep 17 00:00:00 2001 From: Furox Date: Sat, 5 Sep 2026 01:56:32 +0300 Subject: [PATCH] fix: redact volume backup rclone errors --- packages/server/src/utils/volume-backups/utils.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/server/src/utils/volume-backups/utils.ts b/packages/server/src/utils/volume-backups/utils.ts index a9ca6a284..6fa882f18 100644 --- a/packages/server/src/utils/volume-backups/utils.ts +++ b/packages/server/src/utils/volume-backups/utils.ts @@ -12,6 +12,7 @@ import { } from "@dokploy/server/utils/process/execAsync"; import { scheduledJobs, scheduleJob } from "node-schedule"; import { quote } from "shell-quote"; +import { getSafeRcloneErrorMessage } from "../backups/redact"; import { getRclonePathAndFlags, normalizeS3Path } from "../backups/utils"; import { sendVolumeBackupNotifications } from "../notifications/volume-backup"; import { backupVolume, getVolumeServiceAppName } from "./backup"; @@ -103,7 +104,10 @@ const cleanupOldVolumeBackups = async ( await execAsync(fullCommand); } } catch (error) { - console.error("Volume backup retention error", error); + console.error( + "Volume backup retention error", + getSafeRcloneErrorMessage(error), + ); } }; @@ -156,6 +160,8 @@ export const runVolumeBackup = async (volumeBackupId: string) => { ); } } catch (error) { + const safeErrorMessage = getSafeRcloneErrorMessage(error); + console.error("Volume backup error:", safeErrorMessage); const { VOLUME_BACKUPS_PATH } = paths(!!serverId); const volumeBackupPath = path.join( VOLUME_BACKUPS_PATH, @@ -184,7 +190,7 @@ export const runVolumeBackup = async (volumeBackupId: string) => { serviceType: mappedServiceType, type: "error", organizationId, - errorMessage: error instanceof Error ? error.message : String(error), + errorMessage: safeErrorMessage, }); } catch (notificationError) { console.error(