diff --git a/backend/app/plex/stream.py b/backend/app/plex/stream.py index f404fac0..8727d1a3 100644 --- a/backend/app/plex/stream.py +++ b/backend/app/plex/stream.py @@ -667,9 +667,11 @@ def start_session( ) respawned = _spawn(False, False, replace_only=s) if respawned is None: - # Superseded/culled mid-fallback — yield the session registered now (a newer seek-restart), or - # our own now-dead session if the key was cap-culled (its segment requests degrade to the - # route's retryable "not available yet", never a dishonest "file not found" from a None). + # Superseded/culled mid-fallback — yield whoever is registered now (a newer seek-restart), or + # our own now-dead session if the key was cap-culled. Never None here: the POST /session route + # turns a None return into a "Media file not found on disk" 404 — dishonest for a file that + # exists. A (dead) session instead degrades to a retryable 404 ("No active playback session" / + # "Not available yet") the client re-requests. return current_session(key) or s s = respawned ready = wait_for(_seg(0), timeout=25.0, proc=s.proc)