Fixes the bell going quiet — and the server log filling with errors — while Jellyfin scans a library.
Corrige la cloche qui se fige — et le journal serveur qui se remplit d'erreurs — pendant qu'une bibliothèque est analysée.
🇬🇧 English
🐛 Fix
- The bell keeps working during library scans. While Jellyfin was scanning, the bell stopped refreshing and the server log filled with repeated errors. Episodes picked up mid-scan — before Jellyfin had linked them to their series — carried an unusable series reference that broke the request.
- No more phantom series group. Those same episodes were all lumped together into one meaningless group in the bell. Existing entries are cleaned up automatically on the next start.
🇫🇷 Français
🐛 Correction
- La cloche continue de fonctionner pendant les analyses de bibliothèque. Pendant un scan, la cloche cessait de se rafraîchir et le journal du serveur se remplissait d'erreurs répétées. Les épisodes détectés en cours d'analyse — avant que Jellyfin ne les rattache à leur série — portaient une référence de série inutilisable qui faisait échouer la requête.
- Plus de groupe de série fantôme. Ces mêmes épisodes se retrouvaient regroupés ensemble dans un groupe sans signification. Les entrées existantes sont nettoyées automatiquement au prochain démarrage.
🔧 Technical details
Jellyfin creates episodes before linking them to their series, so Episode.SeriesId can still be Guid.Empty during a scan. ToString() turns that into "00000000-0000-0000-0000-000000000000" — a non-empty string, which passed the IsNullOrEmpty guard and reached GetItemById, which rejects an empty GUID with ArgumentException. GetData then aborted for the whole request, once per poll, for as long as the scan ran.
NotificationManagerstoresnullinstead of an all-zeros GUID, on both creation paths (episodes and audio album parents).NotifyController's favourites lookup now requires a resolvable GUID rather than merely a non-empty string — covering rows already written before this release.NotificationDatabaseruns a one-time cleanup clearing all-zerosSeriesIdvalues from existing rows, which also removes the bogus grouping (the client groups bySeriesId).
No database migration needed — the cleanup runs automatically.
📦 Upgrading / Mise à jour
Auto-updates from the stable channel on your next Jellyfin restart. Hard-refresh your browser (Ctrl+Shift+R) to pick up the new client script.
Mise à jour auto depuis le canal stable au prochain redémarrage Jellyfin. Rafraîchissez votre navigateur (Ctrl+Shift+R) pour charger le nouveau script client.