From ea8a7b00c9b68f941a1b7bac5523b9addd9f0366 Mon Sep 17 00:00:00 2001 From: Andy Date: Sat, 6 Sep 2025 18:52:20 +0000 Subject: [PATCH] fix(cdm): Clean up session data when retrieving cached keys Remove decrypt_labs_session_id and challenge from session when cached keys exist but there are missing kids, ensuring clean state for subsequent requests. --- unshackle/core/cdm/decrypt_labs_remote_cdm.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/unshackle/core/cdm/decrypt_labs_remote_cdm.py b/unshackle/core/cdm/decrypt_labs_remote_cdm.py index 58fd355..54f267a 100644 --- a/unshackle/core/cdm/decrypt_labs_remote_cdm.py +++ b/unshackle/core/cdm/decrypt_labs_remote_cdm.py @@ -435,6 +435,12 @@ class DecryptLabsRemoteCDM: if missing_kids: session["cached_keys"] = parsed_keys request_data["get_cached_keys_if_exists"] = False + + if "decrypt_labs_session_id" in session: + del session["decrypt_labs_session_id"] + if "challenge" in session: + del session["challenge"] + response = self._http_session.post(f"{self.host}/get-request", json=request_data, timeout=30) if response.status_code == 200: data = response.json()