-
Notifications
You must be signed in to change notification settings - Fork 118
Description
When attempting to move a participant from one room to another using the server-side move_participant API (from the Python server SDK), the request fails if the participant is on the latest LiveKit Android SDK.
Server-side Code (Python):
await api.room.move_participant(
api.MoveParticipantRequest(
room=self.supervisor_room.name,
identity=_human_identity,
destination_room=self.customer_room.name,
)
)Error Received:
livekit.api.twirp_client.TwirpError: TwirpError(code=unknown, message=participant client version does not support moving, status=500)
Analysis:
After investigating the LiveKit server (Go) codebase, the reason for this error is clear. The server checks the client's protocol version before allowing a move.
In livekit/pkg/rtc/types/protocol_version.go:
func (v ProtocolVersion) SupportsMoving() bool {
return v > 15
}
And in livekit/pkg/rtc/participant.go:
var (
ErrMoveOldClientVersion = errors.New("participant client version does not support moving")
)
...
func (p *ParticipantImpl) SupportsMoving() error {
if !p.ProtocolVersion().SupportsMoving() {
return ErrMoveOldClientVersion
}
...
}
This error indicates that the Android client is reporting a protocol version of 15 or lower, even when using the latest available SDK release. This suggests the Android SDK has not yet implemented support for this server-side feature.
It seems like the latest ProtocolVersion available in the Android SDK is v13. (client-sdk-android/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt)
Feature request:
Could the Android SDK be updated to support the move_participant API? This would involve implementing the necessary client-side logic and bumping its reported protocol version to 16 (or higher) to be compatible with the server's check.