diff --git a/apps/api-daemon/src/youtubePolling.ts b/apps/api-daemon/src/youtubePolling.ts index 2c33970..f57e1cd 100644 --- a/apps/api-daemon/src/youtubePolling.ts +++ b/apps/api-daemon/src/youtubePolling.ts @@ -46,7 +46,14 @@ async function findLiveVideoId(channelId: string): Promise { return videoId || null; } catch (err) { const message = err instanceof Error ? err.message : String(err); - lastPollErrors.set(channelId, message.slice(0, 500)); + // yt-dlp reports "not live" as a non-zero exit too — that's a normal, + // expected outcome on every check where the channel isn't broadcasting, + // not a failure worth surfacing as an error in the panel. + if (!/is not currently live/.test(message)) { + lastPollErrors.set(channelId, message.slice(0, 500)); + } else { + lastPollErrors.delete(channelId); + } return null; } }