From 5407bcd7fc4347a9ba18628488499ab4f80e3e95 Mon Sep 17 00:00:00 2001 From: Silberengel Date: Fri, 16 Jan 2026 18:50:37 +0100 Subject: [PATCH] suppress no filters to merge error from NDK --- src/lib/utils/subscription_search.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/lib/utils/subscription_search.ts b/src/lib/utils/subscription_search.ts index 48e3bf1..a5dcd10 100644 --- a/src/lib/utils/subscription_search.ts +++ b/src/lib/utils/subscription_search.ts @@ -339,6 +339,18 @@ export async function searchBySubscription( ndk, ); console.log("subscription_search: Created search filter:", searchFilter); + + // AI-NOTE: Validate filter to prevent "No filters to merge!" error from NDK + if (!searchFilter.filter || Object.keys(searchFilter.filter).length === 0) { + console.error( + "subscription_search: Invalid or empty filter created:", + searchFilter, + ); + throw new Error( + `Failed to create valid filter for search type: ${searchType}`, + ); + } + const primaryRelaySet = createPrimaryRelaySet(searchType, ndk); console.log( "subscription_search: Created primary relay set with", @@ -1076,6 +1088,15 @@ function searchOtherRelaysInBackground( Array.from(ndk.pool.relays.values()).map((r: any) => r.url), ); + // AI-NOTE: Validate filter before subscribing to prevent "No filters to merge!" error + if (!searchFilter.filter || Object.keys(searchFilter.filter).length === 0) { + console.warn( + "subscription_search: Invalid or empty filter, skipping background search", + searchFilter, + ); + return Promise.resolve(createSearchResult(searchState, searchType, "")); + } + // Subscribe to events from other relays const sub = ndk.subscribe( searchFilter.filter,