From 7438042757cb0e81534cf9f766d84dd3ff57fd84 Mon Sep 17 00:00:00 2001 From: fallenbagel <98979876+fallenbagel@users.noreply.github.com> Date: Fri, 28 Mar 2025 05:21:47 +0800 Subject: [PATCH] fix(jellyfin): ensure deviceID is never empty (#1538) If the deviceID becomes an empty string, login fails since jellyfin requires a non-null deviceID. This commit adds a fallback to guarantee that deviceID is always set, preventing accidental lockout. --- server/api/jellyfin.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/server/api/jellyfin.ts b/server/api/jellyfin.ts index b2323ea5..5ce1d9cf 100644 --- a/server/api/jellyfin.ts +++ b/server/api/jellyfin.ts @@ -110,11 +110,18 @@ class JellyfinAPI extends ExternalAPI { deviceId?: string | null ) { const settings = getSettings(); + const safeDeviceId = + deviceId && deviceId.length > 0 + ? deviceId + : Buffer.from(`BOT_jellyseerr_fallback_${Date.now()}`).toString( + 'base64' + ); + let authHeaderVal: string; if (authToken) { - authHeaderVal = `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${deviceId}", Version="${getAppVersion()}", Token="${authToken}"`; + authHeaderVal = `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${safeDeviceId}", Version="${getAppVersion()}", Token="${authToken}"`; } else { - authHeaderVal = `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${deviceId}", Version="${getAppVersion()}"`; + authHeaderVal = `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${safeDeviceId}", Version="${getAppVersion()}"`; } super(