HydraIssues

Head heartbeats drop after 27-60s into stream causing watchdog_timeout session kills
open unclassified Project: hydraheadipad Reporter: 22 May 2026 02:55

Description

Symptom

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.

Data

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 start
  • node-b96-8 (chunky-turnip-23 + ipad-head-3): duration 93s, head last HB 27s after start
  • node-11d-14 (fluffy-dumpling-87 + ipad-head-4): duration 91s, head last HB ~37s after start
  • Several sessions show head_last_heartbeat_at near zero (head never registered)

Cause (unknown)

The iPad app stops sending PUT /api/v1/heads/{id} heartbeats to hydracluster shortly after a stream starts. Either:

  1. The app loses its hydracluster connection (network change when Moonlight connects?)
  2. The app crashes or backgrounds itself
  3. The heartbeat loop is suspended when the stream UI is active

Impact

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).

Investigation

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.