From 6d2f277ce2d0a1bb67f8cd931f5b0045f24a933d Mon Sep 17 00:00:00 2001 From: Daniel Salazar Date: Sun, 31 May 2026 18:58:27 -0700 Subject: [PATCH] fix: some error handling (#3190) --- .../drivers/ai-image/ImageGenerationDriver.ts | 5 ++++- src/backend/stores/fs/FSEntryStore.ts | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/backend/drivers/ai-image/ImageGenerationDriver.ts b/src/backend/drivers/ai-image/ImageGenerationDriver.ts index 22e66733f..148b063f2 100644 --- a/src/backend/drivers/ai-image/ImageGenerationDriver.ts +++ b/src/backend/drivers/ai-image/ImageGenerationDriver.ts @@ -146,7 +146,10 @@ export class ImageGenerationDriver extends PuterDriver { await this.#assertWriteAccess(actor, resolvedOutputPath); } - let modelId = args.model?.trim().toLowerCase(); + let modelId = + typeof args.model === 'string' + ? args.model.trim().toLowerCase() + : undefined; let intendedProvider = args.provider ?? (Context.get('driverName') as string | undefined); diff --git a/src/backend/stores/fs/FSEntryStore.ts b/src/backend/stores/fs/FSEntryStore.ts index 46d065548..c16b14bd8 100644 --- a/src/backend/stores/fs/FSEntryStore.ts +++ b/src/backend/stores/fs/FSEntryStore.ts @@ -1704,8 +1704,10 @@ export class FSEntryStore extends PuterStore { for (const entry of userEntries) { const parentEntry = parentByPath.get(entry.parentPath); if (!parentEntry) { - throw new Error( - `Failed to resolve parent directory for ${entry.targetPath}`, + throw new HttpError( + 404, + `Parent directory not found for ${entry.targetPath}`, + { legacyCode: 'dest_does_not_exist' }, ); } @@ -1857,8 +1859,10 @@ export class FSEntryStore extends PuterStore { for (const entry of insertChunk) { const parentEntry = parentByPath.get(entry.parentPath); if (!parentEntry) { - throw new Error( - `Failed to resolve parent directory for ${entry.targetPath}`, + throw new HttpError( + 404, + `Parent directory not found for ${entry.targetPath}`, + { legacyCode: 'dest_does_not_exist' }, ); } @@ -1989,8 +1993,10 @@ export class FSEntryStore extends PuterStore { for (const entry of racedCandidates) { const parentEntry = parentByPath.get(entry.parentPath); if (!parentEntry) { - throw new Error( - `Failed to resolve parent directory for ${entry.targetPath}`, + throw new HttpError( + 404, + `Parent directory not found for ${entry.targetPath}`, + { legacyCode: 'dest_does_not_exist' }, ); } const existing = racedExistingByPath.get(entry.targetPath);