diff --git a/frontend/src/lib/components/ui/SearchableMultiSelect.svelte b/frontend/src/lib/components/ui/SearchableMultiSelect.svelte index 77b09b6f..95ce5f59 100644 --- a/frontend/src/lib/components/ui/SearchableMultiSelect.svelte +++ b/frontend/src/lib/components/ui/SearchableMultiSelect.svelte @@ -62,7 +62,10 @@ searchQuery = e.target.value; if (debounceMs > 0 && onSearch) { clearTimeout(debounceTimer); - debounceTimer = setTimeout(() => onSearch(searchQuery), debounceMs); + debounceTimer = setTimeout(() => { + const result = onSearch(searchQuery); + if (result instanceof Promise) result.catch(() => {}); + }, debounceMs); } if (!isOpen) isOpen = true; } diff --git a/frontend/src/lib/models/DashboardHubModel.svelte.ts b/frontend/src/lib/models/DashboardHubModel.svelte.ts index af8f84ea..4ead8847 100644 --- a/frontend/src/lib/models/DashboardHubModel.svelte.ts +++ b/frontend/src/lib/models/DashboardHubModel.svelte.ts @@ -391,7 +391,10 @@ export class DashboardHubModel { id: d.id, name: d.title, subtitle: d.slug || '', hint: d.last_modified ? formatDate(d.last_modified) : '', })); - } catch { this.searchableDashboardOptions = []; } + } catch { + this.searchableDashboardOptions = []; + console.warn('[DashboardHub] loadDashboardSearchOptions failed'); + } finally { this.searchableDashboardLoading = false; } }