From cc90b5fa65b004df178c4911e82e87a5f1696c39 Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Thu, 2 Apr 2026 08:50:35 +0200 Subject: [PATCH] fix(web): reauthenticateInstance works without existing live instance (stale disconnected entries) --- packages/web/src/stores/instanceStore.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/web/src/stores/instanceStore.ts b/packages/web/src/stores/instanceStore.ts index 2117e50b..48359c3a 100644 --- a/packages/web/src/stores/instanceStore.ts +++ b/packages/web/src/stores/instanceStore.ts @@ -564,25 +564,26 @@ export const useInstanceStore = create((set, get) => ({ reauthenticateInstance: async (origin: string, password: string) => { const inst = get().instances.find(i => i.origin === origin); - if (!inst) return; - // Remove the stale placeholder - set((state) => ({ - instances: state.instances.filter(i => i.origin !== origin), - })); - - // Remove its spaces from the space store - useSpaceStore.getState().removeInstanceSpaces(origin); + // Clean up existing instance if present (stale placeholder or disconnected entry) + if (inst) { + set((state) => ({ + instances: state.instances.filter(i => i.origin !== origin), + })); + useSpaceStore.getState().removeInstanceSpaces(origin); + } // Disconnect any lingering WS disconnectWs(origin); // Re-connect through the standard flow (handles register/login) const currentUser = useAuthStore.getState().user; + if (!currentUser) return; + await get().connectToRemote( origin, password, - currentUser?.displayName || undefined, + currentUser.displayName || undefined, ); // Clear pending password sync — connectToRemote uses the current password