diff --git a/packages/kanban/src/components/Kanban.svelte b/packages/kanban/src/components/Kanban.svelte
index d6f222706d..8e04fb415a 100644
--- a/packages/kanban/src/components/Kanban.svelte
+++ b/packages/kanban/src/components/Kanban.svelte
@@ -305,7 +305,7 @@
 <div class="kanban-container top-divider">
   <ScrollBox>
     <div class="kanban-content">
-      {#each categories as state, si (state)}
+      {#each categories as state, si (typeof state === 'object' ? state.name : state)}
         {@const stateObjects = getGroupByValues(groupByDocs, state)}
 
         <div
@@ -325,6 +325,7 @@
             <KanbanRow
               bind:this={stateRows[si]}
               on:obj-focus
+              {groupByDocs}
               {stateObjects}
               {isDragging}
               {dragCard}
diff --git a/packages/kanban/src/components/KanbanRow.svelte b/packages/kanban/src/components/KanbanRow.svelte
index b776f576ac..c01b59e8a6 100644
--- a/packages/kanban/src/components/KanbanRow.svelte
+++ b/packages/kanban/src/components/KanbanRow.svelte
@@ -23,6 +23,7 @@
   export let isDragging: boolean
   export let dragCard: Item | undefined
   export let objects: Item[]
+  export let groupByDocs: Record<string | number, Item[]>
   export let selection: number | undefined = undefined
   export let checkedSet: Set<Ref<Doc>>
   export let state: CategoryType
diff --git a/plugins/workbench-resources/src/components/SpecialView.svelte b/plugins/workbench-resources/src/components/SpecialView.svelte
index f87fb4db95..50dc0eb305 100644
--- a/plugins/workbench-resources/src/components/SpecialView.svelte
+++ b/plugins/workbench-resources/src/components/SpecialView.svelte
@@ -70,7 +70,9 @@
   let viewlets: WithLookup<Viewlet>[] = []
 
   const viewletQuery = createQuery()
+  let vl = false
   $: {
+    vl = true
     viewletQuery.query(
       view.class.Viewlet,
       {
@@ -79,6 +81,7 @@
         descriptor: { $in: descriptors ?? [view.viewlet.Table] }
       },
       (res) => {
+        vl = false
         viewlets = res
       },
       {
@@ -104,9 +107,11 @@
     active: Ref<Viewlet> | null,
     viewlets: WithLookup<Viewlet>[]
   ): Promise<void> {
-    preference = undefined
-    viewlet = viewlets.find((viewlet) => viewlet._id === active) ?? viewlets[0]
-    setActiveViewletId(viewlet._id)
+    if (vl === false) {
+      preference = undefined
+      viewlet = viewlets.find((viewlet) => viewlet?._id === active) ?? viewlets[0]
+      setActiveViewletId(viewlet?._id)
+    }
   }
 
   $: if (viewlet !== undefined) {