Repository navigation
fix(session): replace a reconnect attempt whose ICE pairs all failed; release 0.11.7 - #70
Merged
Merged
Conversation
… release 0.11.7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…starts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A same-session reconnect attempt that starts while the network is still coming back can have every ICE candidate pair fail within a second or two. The ICE agent does not retry failed pairs, so that peer connection can never connect, but the client kept waiting on it through the settle time, the settle extension and the in-flight grace, and never made a second attempt.
session/reconnect_attempt_ice_failedand starts the next attempt right away.Tests
browser-voice-session-recovery.test.ts: the mock peer connection now returns candidate-pair stats. New cases: all pairs failed → next attempt without waiting for settle; one failed check is not enough; pairs in progress keep the attempt; dead during the grace ends recovery; dead attempt in backoff at budget end gets no grace; attempt 2 after a dead attempt restores the session.Verified locally and in CI; no extra manual steps.
🤖 Generated with Claude Code