NeXroll v1.11.0-beta.9 Release Notes
Release Date: March 4, 2026
Changes in Beta.9
Plex Connector — Critical Preroll Fix
Removed Destructive Fallback Cascade
- Fixed a critical bug where
set_preroll()would clear all prerolls when the real value couldn't be set - The retry block previously cycled through fallback values:
[full_path, filename, "", "0"] - The empty string
""would succeed, pass verification, and report "SUCCESS" — while actually wiping the user's preroll configuration - This meant the scheduler silently cleared prerolls every cycle (e.g., every 5 minutes) while reporting success
- Fix: Removed
""and"0"from fallback values entirely. If the real value can't be set, the function now correctly returnsFalse
Preroll String Length Protection
- Added detection and warnings when the combined preroll path string exceeds Plex's practical limits (~20KB)
- When the encoded URL exceeds 8,000 characters, Method A (query parameter PUT) is automatically skipped to avoid guaranteed 400 errors
- Clear failure messages now explain that too many preroll files or long paths are the cause, instead of silently failing
- Logs the character count and approximate file count at the start of each
set_preroll()call
Preference Name Filtering
set_preroll()no longer iterates through non-path preferences likeCinemaTrailersType,CinemaTrailersFromLibrary,CinemaTrailersFromTheater,CinemaTrailersFromBluRay, andCinemaTrailersIncludeEnglish- These are boolean/integer settings, not path settings — attempting to set a file path into them was incorrect and wasted API calls
- Only actual preroll path preference names are now tried:
CinemaTrailersPrerollID,cinemaTrailersPrerollID,CinemaTrailersPreroll,cinemaTrailersPreroll,PrerollID,prerollID
Missing TLS Verify Parameter
- Added missing
verify=self._verifyto the CinemaTrailersPrerollID retry PUT request - Previously this could cause SSL errors for users with self-signed certificates
Scheduler
NeX-Up Auto-Sync SessionLocal Fix
- Fixed
local variable 'SessionLocal' referenced before assignmenterror that occurred every scheduler cycle - Caused by a redundant
from backend.database import SessionLocalinside_check_nexup_auto_sync()which shadowed the module-level import - Python treats any
from X import Yinside a function as makingYa local variable for the entire function scope, even in unreached branches - Removed the redundant import; the module-level import at line 18 now works correctly throughout
Impact
These fixes are critical for users with large preroll libraries (100+ files). Prior to this fix:
- Every scheduler cycle would fail to set the full preroll string (too long for Plex API)
- The destructive fallback would then clear all prerolls by setting the value to
"" - The scheduler would report "SUCCESS" — a complete false positive
- Result: prerolls wiped every 5 minutes, no prerolls ever play
After this fix:
- The function correctly reports failure when Plex can't accept the value
- Prerolls are never destructively cleared as a "fallback"
- Users are given clear log messages explaining the length limit issue