diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index 9a727851b9..5fb157e96b 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -2452,7 +2452,6 @@ "published": "Published", "unpublished": "Unpublished", "publish": "Publish", - "org_publish_error": "Organization could not be published", "troubleshooter_tooltip": "Open the troubleshooter and figure out what is wrong with your schedule", "need_help": "Need help?", "troubleshooter": "Troubleshooter", @@ -3036,6 +3035,7 @@ "tip_username_plus": "Tip: You can a '+' between usernames: cal.com/anna+brian to make a dynamic group meeting", "user_has_no_team_yet": "You don't have a team yet", "no_team_members": "You don't have team members yet", + "could_not_find_slug_to_publish_org": "Could not find slug to publish the organization", "picklist": "Picklist", "ADD_NEW_STRINGS_ABOVE_THIS_LINE_TO_PREVENT_MERGE_CONFLICTS": "↑↑↑↑↑↑↑↑↑↑↑↑↑ Add your new strings above here ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑" } \ No newline at end of file diff --git a/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx b/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx index 2c18630bee..489d6af7ca 100644 --- a/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx +++ b/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx @@ -42,7 +42,7 @@ export function AdminOrgTable() { const publishOrg = async (org: (typeof data)[number]) => { if (!org.metadata?.requestedSlug) { - showToast(t("org_publish_error"), "error"); + showToast(t("could_not_find_slug_to_publish_org"), "error"); console.error("metadata.requestedSlug isn't set", org.metadata?.requestedSlug); return; } diff --git a/packages/lib/domainManager/deploymentServices/vercel.ts b/packages/lib/domainManager/deploymentServices/vercel.ts index b7a939a946..46d295be86 100644 --- a/packages/lib/domainManager/deploymentServices/vercel.ts +++ b/packages/lib/domainManager/deploymentServices/vercel.ts @@ -11,7 +11,7 @@ const vercelDomainApiResponseSchema = z.object({ error: z .object({ code: z.string().nullish(), - domain: z.string().nullish(), + domain: z.any().nullish(), }) .optional(), }); @@ -28,13 +28,28 @@ export const createDomain = async (domain: string) => { method: "POST", }); - const data = vercelDomainApiResponseSchema.parse(await response.json()); + const responseJson = await response.json(); - if (!data.error) { + const parsedResponse = vercelDomainApiResponseSchema.safeParse(responseJson); + + if (!parsedResponse.success) { + // Looks like Vercel changed the response format, so sometimes zod parsing fails + log.error( + safeStringify({ + errorMessage: "Failed to parse Vercel domain creation response", + zodError: parsedResponse.error, + response: responseJson, + }) + ); + // Let's consider domain creation failed + return false; + } + + if (!parsedResponse.data.error) { return true; } - return handleDomainCreationError(data.error); + return handleDomainCreationError(parsedResponse.data.error); }; export const deleteDomain = async (domain: string) => { diff --git a/packages/trpc/server/routers/viewer/organizations/adminUpdate.handler.ts b/packages/trpc/server/routers/viewer/organizations/adminUpdate.handler.ts index b0f5c4fd30..b4383b3c67 100644 --- a/packages/trpc/server/routers/viewer/organizations/adminUpdate.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/adminUpdate.handler.ts @@ -34,7 +34,7 @@ export const adminUpdateHandler = async ({ input }: AdminUpdateOptions) => { }); } - const { mergeMetadata } = getMetadataHelpers(teamMetadataSchema.unwrap(), existingOrg.metadata); + const { mergeMetadata } = getMetadataHelpers(teamMetadataSchema.unwrap(), existingOrg.metadata || {}); const data: Prisma.TeamUpdateArgs["data"] = restInput;