diff --git a/packages/web-shell/client/components/sidebar/WebShellSidebar.tsx b/packages/web-shell/client/components/sidebar/WebShellSidebar.tsx index 22b979c3ac..0bdc1995b2 100644 --- a/packages/web-shell/client/components/sidebar/WebShellSidebar.tsx +++ b/packages/web-shell/client/components/sidebar/WebShellSidebar.tsx @@ -3125,6 +3125,7 @@ export function WebShellSidebar({ return; } const targetPinned = !session.isPinned; + let rpcSucceeded = false; const markRpcSettled = (): void => { setOptimisticPins((previous) => { const entry = previous.get(sessionIdentity); @@ -3174,7 +3175,7 @@ export function WebShellSidebar({ isPinned: targetPinned, }) .then(() => { - markRpcSettled(); + rpcSucceeded = true; bumpWorkspaceReload(); }) .catch((err: unknown) => { @@ -3186,6 +3187,7 @@ export function WebShellSidebar({ if (workspaceCwd) { sessionCatalogController.invalidateWorkspace(workspaceCwd); } + if (rpcSucceeded) markRpcSettled(); setSessionBusy(sessionId, false, session.workspaceCwd); }); },