From 96d94d56d5df44a61223df62b58573bf7c4d6c02 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Wed, 19 Aug 2026 13:16:48 +0300 Subject: [PATCH] Derive matrix_synapse_experimental_features_msc4143_enabled from the configured transports The RTC transports API was enabled based on matrix_rtc_enabled, while the transports it serves were populated based on matrix_livekit_jwt_service_enabled. Enabling the LiveKit JWT service on its own (say, when pointing it at an externally hosted LiveKit server) therefore configured a transport but left the API which announces it switched off. Gating the feature on matrix_synapse_matrix_rtc_transports instead keeps the API and its payload in sync, and makes the empty-transports case that the variable's own documentation warns about unreachable. Co-Authored-By: Claude Opus 5 (1M context) --- group_vars/matrix_servers | 2 -- roles/custom/matrix-synapse/defaults/main.yml | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/group_vars/matrix_servers b/group_vars/matrix_servers index 4b0dbe1b8..c453266c5 100755 --- a/group_vars/matrix_servers +++ b/group_vars/matrix_servers @@ -5195,8 +5195,6 @@ matrix_synapse_experimental_features_msc4108_enabled: "{{ matrix_authentication_ matrix_synapse_delayed_events_enabled: "{{ matrix_rtc_enabled }}" -matrix_synapse_experimental_features_msc4143_enabled: "{{ matrix_rtc_enabled }}" - matrix_synapse_matrix_rtc_transports_livekit_url: "{{ matrix_livekit_jwt_service_public_url if matrix_livekit_jwt_service_enabled else '' }}" matrix_synapse_experimental_features_msc4222_enabled: "{{ matrix_rtc_enabled }}" diff --git a/roles/custom/matrix-synapse/defaults/main.yml b/roles/custom/matrix-synapse/defaults/main.yml index 4c759aa83..140904a3e 100644 --- a/roles/custom/matrix-synapse/defaults/main.yml +++ b/roles/custom/matrix-synapse/defaults/main.yml @@ -1459,12 +1459,12 @@ matrix_synapse_max_event_delay_duration: 24h # # This is used by MatrixRTC clients to discover the unstable RTC transports API. # -# When enabling this, make sure that `matrix_synapse_matrix_rtc_transports` is not empty. -# Serving the RTC transports API without any transports configured breaks MatrixRTC (Element Call) for clients which consult this API. +# This follows `matrix_synapse_matrix_rtc_transports`, because serving the RTC transports API without any transports configured +# breaks MatrixRTC (Element Call) for clients which consult this API. # Such clients treat the API response as authoritative and do not fall back to the `org.matrix.msc4143.rtc_foci` property in the client well-known. # # See https://github.com/matrix-org/matrix-spec-proposals/pull/4143 -matrix_synapse_experimental_features_msc4143_enabled: false +matrix_synapse_experimental_features_msc4143_enabled: "{{ matrix_synapse_matrix_rtc_transports | length > 0 }}" # Controls the `matrix_rtc.transports` setting - the list of MatrixRTC transports advertised via the RTC transports API (MSC4143). #