diff --git a/src/host/serve.rs b/src/host/serve.rs index 74ce058..38bfef3 100644 --- a/src/host/serve.rs +++ b/src/host/serve.rs @@ -130,8 +130,11 @@ async fn run_accept_loop(listener: TcpListener, tx: broadcast::Sender s, Err(e) => { - tracing::warn!("capture HTTP accept failed: {e}"); - return; + // Most accept errors are transient (EMFILE from a brief FD spike, + // EINTR, etc.). Bailing on the first one would kill the entire + // viewer fanout for the rest of the session. + tracing::warn!("capture HTTP accept failed (continuing): {e}"); + continue; } }; let rx = tx.subscribe();