From 6ce4e297d617699654b6a3fb98f7df6f072860db Mon Sep 17 00:00:00 2001 From: "Birch (gastown)" Date: Fri, 27 Mar 2026 23:27:11 +0000 Subject: [PATCH] fix(admin): invalidate controllerVersion on machineRedeploy and machineUpgrade success In both restartMachine mutation onSuccess callbacks, immediately invalidate the controllerVersion query so the Gateway section does not show stale data (e.g. 'Unavailable until redeploy') after an upgrade succeeds. The gatewayStatus invalidation was already present via invalidateGatewayQueries(). The deferred re-invalidation via useEffect (polling until machine is running) is preserved alongside this immediate invalidation. --- .../KiloclawInstances/KiloclawInstanceDetail.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/app/admin/components/KiloclawInstances/KiloclawInstanceDetail.tsx b/src/app/admin/components/KiloclawInstances/KiloclawInstanceDetail.tsx index 7932f4ad1..58e0a4cfc 100644 --- a/src/app/admin/components/KiloclawInstances/KiloclawInstanceDetail.tsx +++ b/src/app/admin/components/KiloclawInstances/KiloclawInstanceDetail.tsx @@ -1221,6 +1221,13 @@ export function KiloclawInstanceDetail({ instanceId }: { instanceId: string }) { toast.success('Redeploy requested'); invalidateMachineQueries(); invalidateGatewayQueries(); + if (data?.user_id) { + void queryClient.invalidateQueries({ + queryKey: trpc.admin.kiloclawInstances.controllerVersion.queryKey({ + userId: data.user_id, + }), + }); + } setAwaitingRestartCompletion(true); }, onError: err => { @@ -1235,6 +1242,13 @@ export function KiloclawInstanceDetail({ instanceId }: { instanceId: string }) { toast.success('Upgrade to latest requested'); invalidateMachineQueries(); invalidateGatewayQueries(); + if (data?.user_id) { + void queryClient.invalidateQueries({ + queryKey: trpc.admin.kiloclawInstances.controllerVersion.queryKey({ + userId: data.user_id, + }), + }); + } setAwaitingRestartCompletion(true); }, onError: err => {