From 88d5ad44c9be2d5e21885538f9951aaf65bb15b0 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Wed, 1 Oct 2025 13:19:43 +0000 Subject: [PATCH] Fix: Correct Novu migration utility query --- src/components/admin/NovuMigrationUtility.tsx | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/components/admin/NovuMigrationUtility.tsx b/src/components/admin/NovuMigrationUtility.tsx index 859c90cc..ecf60543 100644 --- a/src/components/admin/NovuMigrationUtility.tsx +++ b/src/components/admin/NovuMigrationUtility.tsx @@ -28,16 +28,25 @@ export function NovuMigrationUtility() { setProgress(0); try { + // First, fetch user IDs that already have Novu subscriber IDs + const { data: existingPrefs, error: prefsError } = await supabase + .from('user_notification_preferences') + .select('user_id') + .not('novu_subscriber_id', 'is', null); + + if (prefsError) throw prefsError; + + const existingUserIds = existingPrefs?.map(p => p.user_id) || []; + // Fetch users without Novu subscriber IDs - const { data: users, error: fetchError } = await supabase + const query = supabase .from('profiles') - .select('user_id, users:user_id(email)') - .not('user_id', 'in', - supabase - .from('user_notification_preferences') - .select('user_id') - .not('novu_subscriber_id', 'is', null) - ); + .select('user_id, users:user_id(email)'); + + // Only add the not filter if there are existing user IDs + const { data: users, error: fetchError } = existingUserIds.length > 0 + ? await query.not('user_id', 'in', `(${existingUserIds.join(',')})`) + : await query; if (fetchError) throw fetchError;