mirror of
https://github.com/ZoneMinder/zoneminder.git
synced 2026-10-04 08:25:21 -04:00
The camera does not report an expired session as a JSON error. It answers with a bare printable string, "Invalid session in request", where a masked base64 payload belongs. Unmasking that and base64 decoding it produces noise, so a routine timeout was logged as "malformed JSON string ... at character offset 0" - which named neither the session nor the camera's own explanation. Detect it before unmasking, log what the camera actually said, and treat it as a lost session so the existing recovery re-establishes it. session_error is pure so the wording seen on the wire is pinned by a test rather than by a camera happening to be in the right state. refs #4423 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UvTCzCbvGt8xKQRNCSA7o8