From f65fd574c477a8a6267c2872a58553a8c3e0f194 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Thu, 1 May 2025 17:52:47 +0000 Subject: [PATCH] fix: improve WebSocket error handling in CreateWorkspacePageExperimental Refactor WebSocket error handling to ensure that errors are only set when the current socket matches the active one. This prevents unnecessary error messages when the WebSocket connection closes unexpectedly --- .../CreateWorkspacePageExperimental.tsx | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx index e52a50dda072e..ae31ab2503930 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx @@ -95,9 +95,7 @@ const CreateWorkspacePageExperimental: FC = () => { // Initialize the WebSocket connection when there is a valid template version ID useEffect(() => { - if (!realizedVersionId) { - return; - } + if (!realizedVersionId) return; const socket = API.templateVersionDynamicParameters( owner.id, @@ -105,16 +103,19 @@ const CreateWorkspacePageExperimental: FC = () => { { onMessage, onError: (error) => { - setWsError(error); + if (ws.current === socket) { + setWsError(error); + } }, onClose: () => { - // There is no reason for the websocket to close while a user is on the page - setWsError( - new DetailedError( - "Websocket connection for dynamic parameters unexpectedly closed.", - "Refresh the page to reset the form.", - ), - ); + if (ws.current === socket) { + setWsError( + new DetailedError( + "Websocket connection for dynamic parameters unexpectedly closed.", + "Refresh the page to reset the form.", + ), + ); + } }, }, );