diff --git a/app/server/jobs/cleanup-dangling.ts b/app/server/jobs/cleanup-dangling.ts index 35c328c..a755e59 100644 --- a/app/server/jobs/cleanup-dangling.ts +++ b/app/server/jobs/cleanup-dangling.ts @@ -19,7 +19,9 @@ export class CleanupDanglingMountsJob extends Job { const matchingVolume = allVolumes.find((v) => getVolumePath(v) === mount.mountPoint); if (!matchingVolume) { logger.info(`Found dangling mount at ${mount.mountPoint}, attempting to unmount...`); - await executeUnmount(mount.mountPoint); + await executeUnmount(mount.mountPoint).catch((err) => { + logger.warn(`Failed to unmount dangling mount ${mount.mountPoint}: ${toMessage(err)}`); + }); await fs.rmdir(path.dirname(mount.mountPoint)).catch((err) => { logger.warn( diff --git a/app/server/modules/backends/utils/backend-utils.ts b/app/server/modules/backends/utils/backend-utils.ts index 3faeff6..637001f 100644 --- a/app/server/modules/backends/utils/backend-utils.ts +++ b/app/server/modules/backends/utils/backend-utils.ts @@ -13,6 +13,10 @@ export const executeMount = async (args: string[]): Promise => { if (stderr?.trim()) { logger.warn(stderr.trim()); } + + if (result.exitCode !== 0) { + throw new Error(`Mount command failed with exit code ${result.exitCode}: ${stderr?.trim()}`); + } }; export const executeUnmount = async (path: string): Promise => { @@ -24,6 +28,10 @@ export const executeUnmount = async (path: string): Promise => { if (stderr?.trim()) { logger.warn(stderr.trim()); } + + if (result.exitCode !== 0) { + throw new Error(`Mount command failed with exit code ${result.exitCode}: ${stderr?.trim()}`); + } }; export const createTestFile = async (path: string): Promise => {