Voice E2EE does not get preserved after switching regions

(#4678) Bug Open: Needs triage privacy self-hosting voice

Reproduction steps

  1. Start a voice session in a Guild or DM with (or without) a friend
  2. Once a connection is established, switch from the current voice region to another

Expected behaviour

After a region switch the connection should remain E2EE.

Actual behaviour

The connection state is no longer E2EE.

Build information

Stable Desktop 2026.1105.25408, Web 2026.1105.161315, Linux 7.2.14-arch1-1 (x64), Electron 44.10.0, Chrome 152.0.7977.169, Node 24.22.1, Locale en-US The bug is present on a self-hosted instance running the following versions:
ghcr.io/fluxerapp/fluxer-admin:2026.1105.154816
ghcr.io/fluxerapp/fluxer-api:2026.1105.154750
ghcr.io/fluxerapp/fluxer-app-proxy-self-hosted:2026.1105.154757
ghcr.io/fluxerapp/fluxer-gateway:2026.1105.154748
ghcr.io/fluxerapp/fluxer-gifs:2026.1105.154826
ghcr.io/fluxerapp/fluxer-media-proxy:2026.1105.154843
ghcr.io/fluxerapp/fluxer-messages:2026.1105.154827
ghcr.io/fluxerapp/fluxer-snowflakes:2026.1105.154822
ghcr.io/fluxerapp/fluxer-static:2026.1105.154818
ghcr.io/fluxerapp/fluxer-unfurl:2026.1105.154837
ghcr.io/fluxerapp/fluxer-users:2026.1105.154859
ghcr.io/fluxerapp/fluxer-api:2026.1105.154750
Note: This is not using the provided docker-compose setup that's provided by the self-hosting guide. This is just a self-maintained helm-chart that's trying to replicate it as close as possible. I don't think it is related to the hosting setup in any way but I do feel like I should address that.

Platform

Windows, Linux, Web, Self-hosting

Evidence

sample log line for first joining the vc (livekit server side)
2026-11-05T23:10:13.021Z    INFO    livekit.pub    rtc/participant.go:2465    mediaTrack published    {"room": "guild_1541830329369624576_channel_1559091435939037184", "roomID": "RM_jirjq3B3USpA", "participant": "user_1527462011498135552_cobia-aldebaran", "participantID": "PA_TxuRKa8cyUFu", "remote": false, "kind": "audio", "trackID": "TR_AMJwVj7KB4zoa5", "webrtcTrackID": "0d9ceefa-687d-434f-875f-799790f7d13f", "rid": "", "ssrc": 3905345744, "rtxSsrc": 0, "mime": "audio/opus", "trackInfo": {"sid": "TR_AMJwVj7KB4zoa5", "type": "AUDIO", "muted": true, "disableDtx": true, "source": "MICROPHONE", "mimeType": "audio/opus", "mid": "7", "codecs": [{"mimeType": "audio/opus", "mid": "7", "cid": "0d9ceefa-687d-434f-875f-799790f7d13f", "videoLayerMode": "ONE_SPATIAL_LAYER_PER_STREAM"}], "disableRed": true, "encryption": "GCM", "stream": "camera", "version": {"unixMicro": 1793920213021167}, "audioFeatures": ["TF_NO_DTX", "TF_AUTO_GAIN_CONTROL", "TF_ECHO_CANCELLATION"], "backupCodecPolicy": "SIMULCAST"}, "fromSdp": true, "isReceiverAdded": true, "sdpRids": ["", "", ""]}
sample log line for after region switch
2026-11-05T23:10:26.840Z    INFO    livekit.pub    rtc/participant.go:2465    mediaTrack published    {"room": "guild_1541830329369624576_channel_1541830329369624580", "roomID": "RM_fpukHVjEmprV", "participant": "user_1541810912766197760_cusimanse-richter", "participantID": "PA_pFqc2szg9Khg", "remote": false, "kind": "audio", "trackID": "TR_AM4X9iqysJDBSo", "webrtcTrackID": "4ba15dc3-f991-4efc-aef7-7179e0e2b11a", "rid": "", "ssrc": 12332236, "rtxSsrc": 0, "mime": "audio/red", "trackInfo": {"sid": "TR_AM4X9iqysJDBSo", "type": "AUDIO", "disableDtx": true, "source": "MICROPHONE", "mimeType": "audio/red", "mid": "7", "codecs": [{"mimeType": "audio/red", "mid": "7", "cid": "4ba15dc3-f991-4efc-aef7-7179e0e2b11a", "videoLayerMode": "ONE_SPATIAL_LAYER_PER_STREAM"}], "encryption": "NONE", "stream": "camera", "version": {"unixMicro": 1793920226840103}, "audioFeatures": ["TF_NO_DTX"], "backupCodecPolicy": "SIMULCAST"}, "fromSdp": true, "isReceiverAdded": true, "sdpRids": ["", "", ""]}

Comments

Sign in with Fluxer to comment and vote.

No comments yet.