From 84e6e81f04689a5b2e318252bfcf61357ab02af4 Mon Sep 17 00:00:00 2001 From: padreug Date: Mon, 17 Nov 2025 19:54:16 +0100 Subject: [PATCH] fix: handle empty machines table in restrictionLevel query Return 0 when no machines exist instead of throwing an error. This fixes the authentication error on fresh installations where the machines table is empty. --- .../server/lib/new-admin/services/restriction-level.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/server/lib/new-admin/services/restriction-level.js b/packages/server/lib/new-admin/services/restriction-level.js index 63196f0..7c96af6 100644 --- a/packages/server/lib/new-admin/services/restriction-level.js +++ b/packages/server/lib/new-admin/services/restriction-level.js @@ -5,7 +5,15 @@ const { machines } = require('typesafe-db') const CACHE_DURATION = 30 * 60 * 1000 const _getHighestRestrictionLevel = async () => { - return machines.getHighestRestrictionLevel() + try { + const level = await machines.getHighestRestrictionLevel() + // Return 0 if null/undefined (no machines in database) + return level ?? 0 + } catch (err) { + // Log error and return 0 for empty database or other errors + console.error('Error fetching restriction level:', err.message) + return 0 + } } const getCachedRestrictionLevel = mem(_getHighestRestrictionLevel, {