Microphone resources released on Scribe setup failure; error crash fixed
@elevenlabs/client@1.15.1
1 enhancement4 fixesThis release1 enhancementImprovements to existing features4 fixesBug fixesAI-tallied from the release notes
From the original release noteView original ↗
Patch Changes
- df7f31a: Scribe realtime now reports microphone setup failures through
RealtimeEvents.ERRORinstead of leaving an unhandled rejection. Generic local Scribe errors now use the same typed error payload as server errors. - bb001b1: Release microphone resources when Scribe setup fails after capture starts.
- d8892fd: Guard
handleErrorEventagainsterrormessages that arrive without a populatederror_eventpayload. Previously the handler readevent.error_event.error_typedirectly, so a malformed error message threw an unhandledTypeError: Cannot read properties of undefined (reading 'error_type')from inside the message dispatcher. Because the"error"case is not wrapped in a try/catch, the throw escapedonMessageand crashed the consumer instead of surfacing throughonError. The payload is now read defensively and always routed toonError. - 0f12b01: Scribe realtime (microphone mode): release the microphone reliably on teardown.
- Closing the connection while the async microphone setup is still resolving no longer leaks the
MediaStreamTrack/AudioContext; the pipeline is torn down as soon as setup finishes. - A microphone frame that arrives after the socket is gone is now dropped instead of throwing
WebSocket is not connected. - A server-initiated close now releases the microphone too, so consumers reacting to the
CLOSEevent without callingclose()are not left with a live microphone. - An app-initiated
close()that aborts a still-connecting socket no longer logs a spuriousWebSocket closed unexpectedly: 1006/ emitsERROR.
- Closing the connection while the async microphone setup is still resolving no longer leaks the
Fetched July 16, 2026
