From c31152e1fe72889679f0686191fe18a43db3c824 Mon Sep 17 00:00:00 2001 From: Pavan Kumar VH Date: Thu, 3 Sep 2026 15:43:39 +0530 Subject: [PATCH] Fix NaN handling in build seconds calculation The code didn't validate that buildSeconds is a finite number. If buildSeconds was NaN or Infinity, Math.round(NaN / 60) would return NaN. Added Number.isFinite() check to default to 0 for invalid numbers. --- common/src/util/db-health-alerts.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/src/util/db-health-alerts.ts b/common/src/util/db-health-alerts.ts index 0c88fda3bc..35c2f3c3f5 100644 --- a/common/src/util/db-health-alerts.ts +++ b/common/src/util/db-health-alerts.ts @@ -380,8 +380,9 @@ export function evaluateInvalidIndexes( const stuck = building && buildSeconds !== null && buildSeconds >= stuckMinutes * 60 if (!building || stuck) { + const safeBuildSeconds = buildSeconds !== null && Number.isFinite(buildSeconds) ? buildSeconds : 0 const where = building - ? `building ${Math.round((buildSeconds ?? 0) / 60)}m` + ? `building ${Math.round(safeBuildSeconds / 60)}m` : 'not building' offenders.push( `${row.schema}.${row.table_name}.${row.index_name} (${where}, indisready=${row.indisready})`,