From b61db75fc52ae5ca7bec20dabe36c9c943488c22 Mon Sep 17 00:00:00 2001 From: Etienne <45695613+etiennejouan@users.noreply.github.com> Date: Thu, 9 Jan 2025 14:07:48 +0100 Subject: [PATCH] fix: add logo url response status check when creating workspace (#9474) ### Context Workspace logo for work email is generated via twenty favicon service. If twenty favicon can not find user domain favicon, it responds with 404. ### Fix Check logo url before saving it when creating new workspace closes #9359 --------- Co-authored-by: etiennejouan --- .../auth/services/sign-in-up.service.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/twenty-server/src/engine/core-modules/auth/services/sign-in-up.service.ts b/packages/twenty-server/src/engine/core-modules/auth/services/sign-in-up.service.ts index 900a3dec2..02d7d22bd 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/services/sign-in-up.service.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/services/sign-in-up.service.ts @@ -393,9 +393,20 @@ export class SignInUpService { } } - const logo = isWorkEmail(email) - ? `${TWENTY_ICONS_BASE_URL}/${getDomainNameByEmail(email)}` - : undefined; + const logoUrl = `${TWENTY_ICONS_BASE_URL}/${getDomainNameByEmail(email)}`; + const isLogoUrlValid = async () => { + try { + return ( + (await this.httpService.axiosRef.get(logoUrl, { timeout: 600 })) + .status === 200 + ); + } catch { + return false; + } + }; + + const logo = + isWorkEmail(email) && (await isLogoUrlValid()) ? logoUrl : undefined; const workspaceToCreate = this.workspaceRepository.create({ subdomain: await this.domainManagerService.generateSubdomain(),