From b842da4f13a92f593e6ac9f372968ff75c9cdba7 Mon Sep 17 00:00:00 2001
From: Harshit Singh <73997189+harshit078@users.noreply.github.com>
Date: Fri, 24 Oct 2025 19:14:51 +0530
Subject: [PATCH] feat: Add attachment size for attachments (#15330)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Description
- This PR address issue
https://github.com/twentyhq/core-team-issues/issues/1685
- Added attachment size limit upto 10mb for all google, microsoft and
SMTP provider
## Visual
---
.../hooks/useUploadWorkflowFile.ts | 12 ++++++++++++
.../advanced-text-editor/utils/MaxAttachmentSize.ts | 1 +
2 files changed, 13 insertions(+)
create mode 100644 packages/twenty-front/src/modules/advanced-text-editor/utils/MaxAttachmentSize.ts
diff --git a/packages/twenty-front/src/modules/advanced-text-editor/hooks/useUploadWorkflowFile.ts b/packages/twenty-front/src/modules/advanced-text-editor/hooks/useUploadWorkflowFile.ts
index 56749a4f0c..c52761421b 100644
--- a/packages/twenty-front/src/modules/advanced-text-editor/hooks/useUploadWorkflowFile.ts
+++ b/packages/twenty-front/src/modules/advanced-text-editor/hooks/useUploadWorkflowFile.ts
@@ -1,5 +1,8 @@
+import { MAX_ATTACHMENT_SIZE } from '@/advanced-text-editor/utils/MaxAttachmentSize';
+import { formatFileSize } from '@/file/utils/formatFileSize';
import { useApolloCoreClient } from '@/object-metadata/hooks/useApolloCoreClient';
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
+import { t } from '@lingui/core/macro';
import { isDefined } from 'twenty-shared/utils';
import { useCreateFileMutation } from '~/generated-metadata/graphql';
import { logError } from '~/utils/logError';
@@ -21,6 +24,15 @@ export const useUploadWorkflowFile = () => {
file: File,
): Promise => {
try {
+ if (file.size > MAX_ATTACHMENT_SIZE) {
+ const fileName = file.name;
+ const maxUploadSize = formatFileSize(MAX_ATTACHMENT_SIZE);
+ enqueueErrorSnackBar({
+ message: t`File "${fileName}" exceeds ${maxUploadSize}`,
+ });
+ return null;
+ }
+
const result = await createFile({
variables: { file },
});
diff --git a/packages/twenty-front/src/modules/advanced-text-editor/utils/MaxAttachmentSize.ts b/packages/twenty-front/src/modules/advanced-text-editor/utils/MaxAttachmentSize.ts
new file mode 100644
index 0000000000..1f55328f64
--- /dev/null
+++ b/packages/twenty-front/src/modules/advanced-text-editor/utils/MaxAttachmentSize.ts
@@ -0,0 +1 @@
+export const MAX_ATTACHMENT_SIZE = 10 * 1024 * 1024;