diff --git a/packages/presentation/src/filetypes.ts b/packages/presentation/src/filetypes.ts index 5c1380c5dc..88559f459c 100644 --- a/packages/presentation/src/filetypes.ts +++ b/packages/presentation/src/filetypes.ts @@ -13,6 +13,7 @@ // limitations under the License. // +import { Analytics } from '@hcengineering/analytics' import { type Blob, type Ref } from '@hcengineering/core' import { getResource } from '@hcengineering/platform' import { type PopupAlignment } from '@hcengineering/ui' @@ -36,7 +37,13 @@ export async function getFileMetadata (file: FileOrBlob, uuid: Ref): Promi return undefined } - return await metadataProvider(file, uuid) + try { + return await metadataProvider(file, uuid) + } catch (err) { + console.error(err) + Analytics.handleError(err as Error) + return undefined + } } /** diff --git a/plugins/view-resources/src/blob.ts b/plugins/view-resources/src/blob.ts index 42c6db21d3..22d9ea8426 100644 --- a/plugins/view-resources/src/blob.ts +++ b/plugins/view-resources/src/blob.ts @@ -17,6 +17,10 @@ import { type Blob, type Ref } from '@hcengineering/core' import { type BlobMetadata, getImageSize } from '@hcengineering/presentation' export async function blobImageMetadata (file: File, blob: Ref): Promise { + if (file.size === 0) { + return undefined + } + const size = await getImageSize(file) return { @@ -27,6 +31,10 @@ export async function blobImageMetadata (file: File, blob: Ref): Promise): Promise { + if (file.size === 0) { + return undefined + } + const size = await getVideoSize(file) if (size === undefined) {