Session history on hydracluster shows 11/15 recent sessions ending with watchdog_timeout. The hydracluster session watchdog fires when body OR head heartbeat is silent >60s. In all affected sessions the head heartbeat stops 27–60 seconds after stream start — the body continues heartbeating normally.
From /api/v1/sessions/history on 2026-05-22:
node-b96-9 (chunky-turnip-23 + ipad-head-3): duration 83s, head last HB only 17s after startnode-b96-8 (chunky-turnip-23 + ipad-head-3): duration 93s, head last HB 27s after startnode-11d-14 (fluffy-dumpling-87 + ipad-head-4): duration 91s, head last HB ~37s after starthead_last_heartbeat_at near zero (head never registered)The iPad app stops sending PUT /api/v1/heads/{id} heartbeats to hydracluster shortly after a stream starts. Either:
The hydracluster session watchdog closes the session after 60s of head silence and sends TerminateStream: true to the body, killing the running experience. This is the dominant cause of premature stream termination (73% of sessions).
Check hydraheadipad logs on ipad-head-3 and ipad-head-4 during a stream to see if heartbeat calls are being made. Confirm whether the heartbeat loop is paused when the Moonlight stream UI takes focus.