Skip to content

fix: guard participant task cleanup#1723

Open
rosetta-livekit-bot[bot] wants to merge 1 commit into
mainfrom
shunts-bigmouth-abetters
Open

fix: guard participant task cleanup#1723
rosetta-livekit-bot[bot] wants to merge 1 commit into
mainfrom
shunts-bigmouth-abetters

Conversation

@rosetta-livekit-bot
Copy link
Copy Markdown
Contributor

@rosetta-livekit-bot rosetta-livekit-bot Bot commented Jun 5, 2026

Summary

Testing

  • pnpm build:agents
  • pnpm format:check

Ported from livekit/agents#5979

Original PR description

JobContext._participant_available() stores participant-entrypoint tasks keyed by (identity, coro) and the done-callback does self._participant_tasks.pop((p.identity, coro)) with no default. When the same identity connects twice in quick succession (normal client reconnect on flaky mobile networks; Cloud later evicts the duplicate with DUPLICATE_IDENTITY), the second connect overwrites the dict entry at job.py:727. Both done-callbacks then pop the same key: the first wins, the second raises an unhandled KeyError into asyncio's default exception handler.

Exception in callback JobContext._participant_available.<locals>.<lambda>(<Task finishe...> result=None>)
  at .../site-packages/livekit/agents/job.py:729
KeyError: ('<identity>', <function participant_entrypoint ...>)

The code already anticipates the overlap but cleanup is not idempotent.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jun 5, 2026

🦋 Changeset detected

Latest commit: d60cec7

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

This PR includes changesets to release 34 packages
Name Type
@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-elevenlabs 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-perplexity 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-soniox Patch
@livekit/agents-plugin-tavus Patch
@livekit/agents-plugins-test Patch
@livekit/agents-plugin-trugen Patch
@livekit/agents-plugin-xai 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 1 additional finding.

Open in Devin Review

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.

0 participants