You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Drain egress on sustained high CPU instead of hard-killing, uploading what was recorded (#1265)
Reap orphaned PulseAudio sinks in a dedicated monitor goroutine, so a crashed handler no longer permanently blocks web egress on the pod; reaper is tunable at runtime (#1289, #1294)
Detect wedged RTMP sinks via an active per-stream liveness monitor; per-stream failures are isolated so multi-output egresses keep streaming on surviving outputs (#1244)
Detect missing keyframes and re-request PLI across video codecs (#1256)
Upload observability: report upload error status class (4xx/5xx/internal) and custom-endpoint usage in upload metrics (#1264, #1271)
Logging improvements: hardware stats logged at info level at egress end (#1297), CPU info in memory stats dumps (#1306), room disconnect reason (#1262), warning on PTS patching (#1260)
Changed
Handler processes no longer connect to the message bus — per-egress RPC topics (UpdateStream, UpdateEgress, StopEgress) are served by the service process and forwarded to handlers over IPC (#1309)
Handler config and request are passed via environment variables instead of command-line args, so credentials no longer leak through the process list (#1298)
Egress now fails instead of transparently succeeding when it is disconnected from a room and cannot reconnect; media recorded up to that point is still uploaded (#1270)
Recover appsrc from a stranded flushing state with flush start/stop events instead of failing the egress (#1305, #1312)
Handler counters and histograms drop the per-egress egress_id label and are merged in the service, so metrics from handlers that die uncleanly are still accounted for without phantom counter resets (#1269)
Exit silently on duplicate-identity disconnect instead of uploading a partial recording (#1251)
Restore livekitwebrtcsrc/livekitwebrtcsink in GStreamer images and support image revision tags (#1290)
Raise the PulseAudio open-file limit to a sensible value (#1276)
Don't log user-initiated room deletion as a warning (#1302)
Fixed
Fix appsrc state regression when source bins are added during pipeline startup — one of the main causes of "pipeline frozen" errors (#1293)
Fix silent upload failures orphaning HLS segments on disk when no backup storage is configured (#1284)
Fix panic when a track is closed during start-gate priming (#1285)
Fix nil-deref race on the SDK source room during disconnect (#1282)
Fix RTMP fast-fail logic depending on peer ack behavior, which could incorrectly fail long-running healthy streams on their first disconnect (#1244)
Don't leak goroutines when handler launch fails (#1291)
Retry web egresses on ERR_CONNECTION_CLOSED page load errors (#1263)
Fix double-unref of pads retrieved via GetStaticPad (#1261)