From e93e9ed839d1287560402b3adcbad1377ba26403 Mon Sep 17 00:00:00 2001 From: ajnart Date: Tue, 21 Jul 2026 16:00:54 +0200 Subject: [PATCH] fix(media-server): guard against undefined playback from stale cache PR #6315 added playback/location fields to StreamSession but cached query data may still lack these fields, causing 'can't access property state, playback is undefined' errors on the media server widget. --- packages/widgets/src/media-server/component.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/widgets/src/media-server/component.tsx b/packages/widgets/src/media-server/component.tsx index ceeb21bd9..439857a8f 100644 --- a/packages/widgets/src/media-server/component.tsx +++ b/packages/widgets/src/media-server/component.tsx @@ -66,10 +66,12 @@ export default function MediaServerWidget({ options, integrationIds }: WidgetCom const currentlyPlaying = row.original.currentlyPlaying; if (!currentlyPlaying) return null; - const isPaused = currentlyPlaying.playback.state === "paused"; + const playback = currentlyPlaying.playback; + const isPaused = playback?.state === "paused"; const Icon = isPaused ? IconPlayerPause : mediaTypeIconMap[currentlyPlaying.type]; - const { positionMs, durationMs } = currentlyPlaying.playback; + const positionMs = playback?.positionMs ?? null; + const durationMs = playback?.durationMs ?? null; const progressPercent = positionMs !== null && durationMs !== null && durationMs > 0 ? Math.min(100, Math.round((positionMs / durationMs) * 100))