Skip to content

refactor(elevenlabs): abort recv channel on ws close/error#1505

Merged
toubatbrian merged 2 commits into
mainfrom
u9g/elevenlabs-recv-error-var
May 15, 2026
Merged

refactor(elevenlabs): abort recv channel on ws close/error#1505
toubatbrian merged 2 commits into
mainfrom
u9g/elevenlabs-recv-error-var

Conversation

@u9g
Copy link
Copy Markdown
Contributor

@u9g u9g commented May 14, 2026

Description

Replace the side-channel Future<Error> in the TTS recv loop with a messageChannel.abort(err) call from the ws event handlers, so the pending reader.read() rejects inline. Mirrors Python's _recv_loop, which raises directly from await ws.receive().

Changes Made

  • onClose/onError now call messageChannel.abort(err) instead of resolving a separate Future
  • Drop the post-loop if (errorFuture.done) throw check — the outer try/catch handles it
  • Drop the now-unused Future import

Pre-Review Checklist

  • Build passes: All builds (lint, typecheck, tests) pass locally
  • AI-generated code reviewed: Removed unnecessary comments and ensured code quality
  • Changes explained: All changes are properly documented and justified above
  • Scope appropriate: All changes relate to the PR title, or explanations provided for why they're included

Testing

  • All elevenlabs tests pass (one pre-existing unrelated failure in shared TTS scaffold around openai/STT VAD)

Push the error into the message channel via abort() so the next
reader.read() rejects inline, instead of holding it in a side Future
and checking after the loop. Mirrors how Python's _recv_loop raises
directly from await ws.receive().
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 14, 2026

🦋 Changeset detected

Latest commit: 8b2c93d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 31 packages
Name Type
@livekit/agents-plugin-elevenlabs Patch
@livekit/agents Patch
@livekit/agents-plugin-anam Patch
@livekit/agents-plugin-assemblyai Patch
@livekit/agents-plugin-baseten Patch
@livekit/agents-plugin-bey Patch
@livekit/agents-plugin-cartesia Patch
@livekit/agents-plugin-cerebras Patch
@livekit/agents-plugin-deepgram Patch
@livekit/agents-plugin-fishaudio Patch
@livekit/agents-plugin-google Patch
@livekit/agents-plugin-hedra Patch
@livekit/agents-plugin-hume Patch
@livekit/agents-plugin-inworld Patch
@livekit/agents-plugin-lemonslice Patch
@livekit/agents-plugin-liveavatar Patch
@livekit/agents-plugin-livekit Patch
@livekit/agents-plugin-minimax Patch
@livekit/agents-plugin-mistral Patch
@livekit/agents-plugin-mistralai Patch
@livekit/agents-plugin-neuphonic Patch
@livekit/agents-plugin-openai Patch
@livekit/agents-plugin-phonic Patch
@livekit/agents-plugin-resemble Patch
@livekit/agents-plugin-rime Patch
@livekit/agents-plugin-runway Patch
@livekit/agents-plugin-sarvam Patch
@livekit/agents-plugin-silero Patch
@livekit/agents-plugin-trugen Patch
@livekit/agents-plugin-xai Patch
@livekit/agents-plugins-test Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 3 additional findings.

Open in Devin Review

Comment thread plugins/elevenlabs/src/tts.ts Outdated
Comment thread plugins/elevenlabs/src/tts.ts
@toubatbrian toubatbrian merged commit 9f927d9 into main May 15, 2026
9 checks passed
@toubatbrian toubatbrian deleted the u9g/elevenlabs-recv-error-var branch May 15, 2026 03:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants