diff --git a/frontend/src/pages/inbounds/useInbounds.ts b/frontend/src/pages/inbounds/useInbounds.ts index dce85cb3..ce1aadf4 100644 --- a/frontend/src/pages/inbounds/useInbounds.ts +++ b/frontend/src/pages/inbounds/useInbounds.ts @@ -249,11 +249,14 @@ export function useInbounds() { // Invalidate at the inbounds root so both `slim` (this page's list) // and `options` (the Clients page's inbound picker) refetch. Without // the options bucket, a freshly-created inbound stays invisible in - // the client add/edit modal until a full page reload. + // the client add/edit modal until a full page reload. The xray config + // response carries inboundTags for the routing-rule tag picker, so it + // needs invalidating too or that list stays stale until a hard refresh. await Promise.all([ queryClient.invalidateQueries({ queryKey: keys.inbounds.root() }), queryClient.invalidateQueries({ queryKey: keys.clients.onlines() }), queryClient.invalidateQueries({ queryKey: keys.clients.lastOnline() }), + queryClient.invalidateQueries({ queryKey: keys.xray.config() }), ]); }, [queryClient]);