Changes
🐛 Bug Fixes
Fixed Episode Notifications for Ended TV Series
- Issue: Episode 2+ notifications were missing for ended TV series (like "Russian Doll")
- Root Cause: Obsolete filter was blocking notifications for ended series that had already been notified once
- Fix: Removed the outdated ended series notification filter that created timing issues between immediate and webhook processing
- Impact: All users will now receive proper episode notifications regardless of series status
- File:
src/services/database/methods/notification.ts
Fixed Admin Notifications for Sync-Disabled Users
- Issue: Webhook notifications were sent to admin endpoints for users with Plex watchlist sync disabled
- Root Cause: Notification system wasn't checking user's
can_sync
setting before sending admin alerts - Fix: Added sync status check before sending any admin notifications (Discord/Apprise)
- Impact: Admin notifications now only sent for users who have watchlist sync enabled
- File:
src/services/plex-watchlist.service.ts
🚀 New Features
Enhanced Logging & Error Handling System
- Standardized Error Logging: Consolidated error logging with standardized format across all services
- Conditional Stack Traces: Custom Pino error serializer that conditionally excludes stack traces from 4xx client errors
- Security-Conscious Logging: Automatic redaction of sensitive URLs and credentials in logs
- Consistent Error Keys: Standardized all error logs to use 'error' key instead of mixed 'err'/'error' patterns
- Optimized Authentication Logging: Updated authentication error logging to use appropriate warn level
Discord Webhook Enhancements
- Timeout Protection: Per-endpoint timeout handling (10s) with AbortController to prevent hung requests
- Endpoint Fingerprinting: Stable endpoint fingerprinting for secure webhook identification in logs
- Enhanced Diagnostics: Enriched logging context with status codes, response times, and success/failure details
- Improved Error Context: Better error handling with enriched diagnostic information
API Response Standardization
- ErrorSchema Compliance: Updated 404 handler to conform to shared ErrorSchema format
- Consistent Error Responses: Aligned error responses across all endpoints for consistency
- Secure Request Logging: Proper request context logging without exposing sensitive data
🔧 Technical Implementation
Error Handling Architecture
- Custom error serializer in
src/utils/logger.ts
for conditional stack trace handling - Centralized error handling utilities for consistent service behavior
- Enhanced request-scoped logging with correlation IDs
- Improved error boundary isolation across service layers
Dependencies
-
Updated Renovate configuration for automated dependency management
-
Minor dependency updates and security improvements
-
Feature: bug fixes in notifications and sync-disabled users (#454) @jamcalli
-
Fix/notificaiton issues ended shows can sync (#453) @jamcalli
-
chore: regenerate openapi docs pages and fix renovate formatting issue (#452) @jamcalli
-
Feature: Improved Logging and Return Infrastructure (#451) @jamcalli
-
fix: tautulli notifications for single episode (#444) @jamcalli
Docker
docker pull lakker/pulsarr:0.5.1