Description
## Summary
Session node-11d-3 on body **fluffy-dumpling-87** (node-11da9ea3, bxl1-test-2/cloud-seven) was terminated by hydracluster watchdog at **2026-05-22T01:22:25Z** after 64s of streaming. The iPad head node-d0112bf1 reported the stream as failing after 170s ("Connection Terminated: The connection was terminated, error code: -1").
This is a confirmed instance of the status dedup bug fixed in hydrabody v2.0.57.
## Timeline
- **01:07:47Z** — hydrabody v2.0.57 commit tagged (fix: reduce status dedup window to 45s)
- **01:12:57 CEST (local iPad time)** — First streaming attempt; connected, then stop() called after ~17s (likely earlier watchdog kill, session not in history — session node-11d-1 or node-11d-2 not retained)
- **01:15:37Z** — v2.0.57 tag pushed; CI build begins
- **01:21:20Z** — Second streaming attempt begins (session node-11d-3)
- **01:21:20Z** — body_last_heartbeat_at = started_at (only ONE heartbeat ever received from body)
- **01:22:25Z** — hydracluster watchdog fires at 64s; session terminated (end_reason: watchdog_timeout)
- **01:24:01 CEST (local iPad time)** — Moonlight receives unexpected disconnect event (errorCode=-1), stream ends after 170.1s from Moonlight perspective
- **01:25:11Z** — Issue #355 auto-filed by iPad head
## Root Cause
The body was running a version of hydrabody **prior to v2.0.57** that had a 5-minute status POST dedup window. Once the body reported its initial streaming status at session start, no further status POSTs were sent (state unchanged = dedup suppressed). Hydracluster tracked body_last_heartbeat_at as the session start time only. After 60s without a body heartbeat, the session watchdog triggered TerminateStream on Sunshine, dropping the control stream and disconnecting Moonlight.
The body is now running v2.0.57 (confirmed via /api/v1/nodes/node-11da9ea3: service_versions.hydrabody = v2.0.57). The fix reduces the dedup window to 45s, ensuring the body posts status at least every 45s during stable streaming — well within the 60s watchdog threshold.
## Scope
The session history shows 3 sessions all ended with watchdog_timeout in the 01:19–01:22Z window, affecting fluffy-dumpling-87 (node-11da9ea3), cosmic-pretzel-98 (node-4c2be4b0), and chunky-turnip-23 (node-b961f1c8). All share the same signature: body_last_heartbeat_at == started_at.
## Status
Covered by the v2.0.57 fix already deployed. No further code changes required. Monitor next sessions to confirm watchdog timeouts no longer occur.