From 82a0734d73fde846b69992ddd97bb9c0aee852bd Mon Sep 17 00:00:00 2001 From: aayushbaluni <73417844+aayushbaluni@users.noreply.github.com> Date: Sat, 2 May 2026 00:03:28 +0530 Subject: [PATCH] fix: preserve array query parameters in user redirect Dynamic group redirects rebuilt the query string with URLSearchParams(context.query as Record), which coerced string[] values incorrectly. Append each query value explicitly instead. Fixes calcom/cal.com#28687 --- apps/web/server/lib/[user]/getServerSideProps.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/web/server/lib/[user]/getServerSideProps.ts b/apps/web/server/lib/[user]/getServerSideProps.ts index 21eae4b913dbde..c5406a62442def 100644 --- a/apps/web/server/lib/[user]/getServerSideProps.ts +++ b/apps/web/server/lib/[user]/getServerSideProps.ts @@ -107,7 +107,15 @@ export const getServerSideProps: GetServerSideProps = async (cont // EXAMPLE - context.params: { orgSlug: 'acme', user: 'member0+owner1' } // EXAMPLE - context.query: { redirect: 'undefined', orgRedirection: 'undefined', user: 'member0+owner1' } - const originalQueryString = new URLSearchParams(context.query as Record).toString(); + const params = new URLSearchParams(); + for (const [key, value] of Object.entries(context.query)) { + if (Array.isArray(value)) { + value.forEach((v) => params.append(key, v)); + } else if (value !== undefined) { + params.append(key, value); + } + } + const originalQueryString = params.toString(); const destinationWithQuery = `${destinationUrl}?${originalQueryString}`; log.debug(`Dynamic group detected, redirecting to ${destinationUrl}`); return {