From 195ca1bff986f028ab811adbe0f61d6a580f5e7f Mon Sep 17 00:00:00 2001 From: SumitKumar-17 Date: Wed, 8 Oct 2025 15:41:47 +0300 Subject: [PATCH] fix(storage): correct exists() error handling for non-existent files --- .../storage-js/src/packages/StorageFileApi.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/core/storage-js/src/packages/StorageFileApi.ts b/packages/core/storage-js/src/packages/StorageFileApi.ts index 30a91deca..d00e5a63e 100644 --- a/packages/core/storage-js/src/packages/StorageFileApi.ts +++ b/packages/core/storage-js/src/packages/StorageFileApi.ts @@ -1,4 +1,4 @@ -import { isStorageError, StorageError, StorageUnknownError } from '../lib/errors' +import { isStorageError, StorageError, StorageUnknownError, StorageApiError } from '../lib/errors' import { Fetch, get, head, post, put, remove } from '../lib/fetch' import { recursiveToCamel, resolveFetch } from '../lib/helpers' import { @@ -600,14 +600,21 @@ export default class StorageFileApi { if (this.shouldThrowOnError) { throw error } - if (isStorageError(error) && error instanceof StorageUnknownError) { - const originalError = error.originalError as unknown as { status: number } + if (isStorageError(error)) { + // Check for both StorageApiError (which has status directly) and StorageUnknownError (with originalError) + let status: number | undefined + + if (error instanceof StorageApiError) { + status = error.status + } else if (error instanceof StorageUnknownError) { + const originalError = error.originalError as unknown as { status: number } + status = originalError?.status + } - if ([400, 404].includes(originalError?.status)) { - return { data: false, error } + if (status && [400, 404].includes(status)) { + return { data: false, error: null } } } - throw error } }