From baf7344e2d7fe408c42740f93c451babce7125c8 Mon Sep 17 00:00:00 2001 From: harsh-aghara Date: Tue, 5 May 2026 17:07:13 +0530 Subject: [PATCH] fix(ui): enforce strict type safety in bulk action error handling Addresses PR feedback: - Replaces forbidden any type in catch block with unknown - Adds type discrimination using axios.isAxiosError and instanceof Error - Narrows error type for logger.error compatibility Fixes #3602 --- client/src/Hooks/useBulkMonitorActions.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/client/src/Hooks/useBulkMonitorActions.ts b/client/src/Hooks/useBulkMonitorActions.ts index ddf96fedb..268137392 100644 --- a/client/src/Hooks/useBulkMonitorActions.ts +++ b/client/src/Hooks/useBulkMonitorActions.ts @@ -1,4 +1,5 @@ import { useState, useEffect } from "react"; +import axios from "axios"; import { post } from "@/Utils/ApiClient"; import { useToast } from "@/Hooks/UseToast"; import { useTranslation } from "react-i18next"; @@ -55,9 +56,18 @@ export const useBulkMonitorActions = ( setSelectedRows([]); refetch(); - } catch (err: any) { - const errMsg = err?.response?.data?.msg || err.message || "An error occurred"; - logger.error("Bulk pause/resume failed", err, { pause }); + } catch (err: unknown) { + let errMsg = "An error occurred"; + + if (axios.isAxiosError(err)) { + errMsg = err.response?.data?.msg || err.message || errMsg; + } else if (err instanceof Error) { + errMsg = err.message; + } + + logger.error("Bulk pause/resume failed", err instanceof Error ? err : undefined, { + pause, + }); toastError(errMsg); } };