File: crates/web/src/voice.rs:62, 173, 417, 419, 627, 689
Severity: robustness — debt
Obvious? yes
A real-time voice subsystem silently discards audio_context.resume(), audio_context.close(), audio.play(), body.append_child(...), and a critical pc.set_local_description(rollback) failure.
Rollback failure especially can leave the RTCPeerConnection wedged with no logs to diagnose autoplay-policy or signaling races.
Fix: replace let _ = ... with tracing::warn!(?err, "voice: <op>") at minimum on every site.
Filed by /general-audit @ b901575 (2026-05-02). master: #513.
File:
crates/web/src/voice.rs:62, 173, 417, 419, 627, 689Severity: robustness — debt
Obvious? yes
A real-time voice subsystem silently discards
audio_context.resume(),audio_context.close(),audio.play(),body.append_child(...), and a criticalpc.set_local_description(rollback)failure.Rollback failure especially can leave the
RTCPeerConnectionwedged with no logs to diagnose autoplay-policy or signaling races.Fix: replace
let _ = ...withtracing::warn!(?err, "voice: <op>")at minimum on every site.Filed by
/general-audit@b901575(2026-05-02). master: #513.