Skip to content

fix PC timeout when connecting with can_subscribe=false#955

Merged
s-hamdananwar merged 4 commits intomainfrom
hamdan/fix-publisher-primary-pc-connection-timeout
Mar 20, 2026
Merged

fix PC timeout when connecting with can_subscribe=false#955
s-hamdananwar merged 4 commits intomainfrom
hamdan/fix-publisher-primary-pc-connection-timeout

Conversation

@s-hamdananwar
Copy link
Copy Markdown
Contributor

@s-hamdananwar s-hamdananwar commented Mar 19, 2026

When a participant connects with canSubscribe=false in their token, the server sends subscriber_primary=false in the JoinResponse and does not send a subscriber offer. This results in wait_pc_connection timing out as it is expecting a subscriber PC even when the peer connection is publisher primary. This PR will skip waiting for subscriber PC when subscriber_primary=false.

@xianshijing-lk
Copy link
Copy Markdown
Contributor

@s-hamdananwar , nice, could you please use codex or claude to add an unit tests in Rust SDK's peer connection tests ?
Ideally, we can verify that things are broken before this PR, and get fixed by this PR.

@s-hamdananwar
Copy link
Copy Markdown
Contributor Author

@xianshijing-lk done ✅

@xianshijing-lk
Copy link
Copy Markdown
Contributor

lgtm, thanks for fixing it.

@s-hamdananwar s-hamdananwar merged commit 087f046 into main Mar 20, 2026
21 checks passed
@s-hamdananwar s-hamdananwar deleted the hamdan/fix-publisher-primary-pc-connection-timeout branch March 20, 2026 15:02
@knope-bot knope-bot bot mentioned this pull request Mar 20, 2026
theomonnom pushed a commit that referenced this pull request Mar 23, 2026
> [!IMPORTANT]
> Merging this pull request will create these releases

# libwebrtc 0.3.27 (2026-03-22)
## Features

### E2EE: allow setting key_ring_size and key_derivation_algorithm,
update webrtc to m144

#921 by @onestacked

This PR uses [this webrtc-sdk
PR](webrtc-sdk/webrtc#224) to configure the KDF.

I've tested this with
https://codeberg.org/esoteric_programmer/matrix-jukebox and it is
compatible with Element Call.

Fixed: #796

## Fixes

- Fix H.264 codec matching

### add bounded buffer to audio_stream, and use 10 frames as the default

#945 by @xianshijing-lk

### fix clang build issue from zed patches (#949)

#950 by @cloudwebrtc

* webrtc-sys: Use clang instead of gcc

* Debug CI output for aarch64-linux

* ci: Install lld for aarch64-linux FFI builders

* webrtc-sys: Disable CREL
# livekit 0.7.34 (2026-03-22)
## Features

### E2EE: allow setting key_ring_size and key_derivation_algorithm,
update webrtc to m144

#921 by @onestacked

This PR uses [this webrtc-sdk
PR](webrtc-sdk/webrtc#224) to configure the KDF.

I've tested this with
https://codeberg.org/esoteric_programmer/matrix-jukebox and it is
compatible with Element Call.

Fixed: #796

## Fixes

- Add disconnectReason to Room::close
- End-to-end testing for video streams
- Fix H.264 codec matching

### add bounded buffer to audio_stream, and use 10 frames as the default

#945 by @xianshijing-lk

### fix PC timeout when connecting with can_subscribe=false

#955 by @s-hamdananwar

When a participant connects with `canSubscribe=false` in their token,
the server sends `subscriber_primary=false` in the JoinResponse and does
not send a subscriber offer. This results in `wait_pc_connection` timing
out as it is expecting a subscriber PC even when the publisher PC is
primary. This PR will skip waiting for subscriber PC when
`subscriber_primary=false`.

### Send client os and os_version from rust

#952 by @MaxHeimbrock

Adds [os_info](https://crates.io/crates/os_info) crate as dependency and
sends the data for client connections.
# livekit-ffi 0.12.50 (2026-03-22)
## Features

### E2EE: allow setting key_ring_size and key_derivation_algorithm,
update webrtc to m144

#921 by @onestacked

This PR uses [this webrtc-sdk
PR](webrtc-sdk/webrtc#224) to configure the KDF.

I've tested this with
https://codeberg.org/esoteric_programmer/matrix-jukebox and it is
compatible with Element Call.

Fixed: #796

## Fixes

- Fix H.264 codec matching

### add bounded buffer to audio_stream, and use 10 frames as the default

#945 by @xianshijing-lk

### Send client os and os_version from rust

#952 by @MaxHeimbrock

Adds [os_info](https://crates.io/crates/os_info) crate as dependency and
sends the data for client connections.
# webrtc-sys 0.3.25 (2026-03-22)
## Fixes

- fix: enable AGC2 adaptive digital controller
- Fix H.264 codec matching

### E2EE: allow setting key_ring_size and key_derivation_algorithm,
update webrtc to m144

#921 by @onestacked

This PR uses [this webrtc-sdk
PR](webrtc-sdk/webrtc#224) to configure the KDF.

I've tested this with
https://codeberg.org/esoteric_programmer/matrix-jukebox and it is
compatible with Element Call.

Fixed: #796

### fix clang build issue from zed patches (#949)

#950 by @cloudwebrtc

* webrtc-sys: Use clang instead of gcc

* Debug CI output for aarch64-linux

* ci: Install lld for aarch64-linux FFI builders

* webrtc-sys: Disable CREL
# livekit-datatrack 0.1.1 (2026-03-22)
## Features

- Initial release.
# webrtc-sys-build 0.3.14 (2026-03-22)
## Fixes

### fix: Bump webrtc build to fix build for Android JNI prefixed.

#954 by @cloudwebrtc

### fix clang build issue from zed patches (#949)

#950 by @cloudwebrtc

* webrtc-sys: Use clang instead of gcc

* Debug CI output for aarch64-linux

* ci: Install lld for aarch64-linux FFI builders

* webrtc-sys: Disable CREL
# livekit-protocol 0.7.2 (2026-03-22)
## Fixes

- Add disconnectReason to Room::close
# livekit-api 0.4.16 (2026-03-22)
## Fixes

### Send client os and os_version from rust

#952 by @MaxHeimbrock

Adds [os_info](https://crates.io/crates/os_info) crate as dependency and
sends the data for client connections.

Co-authored-by: knope-bot[bot] <152252888+knope-bot[bot]@users.noreply.github.com>
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