Skip to content

Synapse 1.150.0 does not expose MatrixRTC transports endpoint despite msc4143_enabled=true #19652

Description

@sdestem

Description

I am trying to enable MatrixRTC (MSC4143) with Element Call + LiveKit on a self-hosted setup, but the endpoint /_matrix/client/v1/rtc/transports is not recognized by Synapse.

Setup

  • Synapse deployed via matrix-docker-ansible-deploy
  • Element Web + Element Call
  • LiveKit + lk-jwt-service working
  • Reverse proxy: Traefik (playbook-managed)

Configuration

In homeserver.yaml:

experimental_features:
  msc4143_enabled: true

matrix_rtc:
  transports:
    - type: livekit
      livekit_service_url: "https://rtc.kimiu.fr/livekit/jwt"

Well-known

https://kimiu.fr/.well-known/matrix/client returns:

{
  "m.homeserver": {
    "base_url": "https://matrix.kimiu.fr",
    "server_name": "kimiu.fr"
  },
  "org.matrix.msc4143.rtc_foci": [
    {
      "type": "livekit",
      "livekit_service_url": "https://rtc.kimiu.fr/livekit/jwt"
    }
  ]
}

LiveKit

Health endpoint works:

curl https://rtc.kimiu.fr/livekit/jwt/healthz → HTTP 200

Problem

This request returns 404 / M_UNRECOGNIZED:

curl -i https://matrix.kimiu.fr/_matrix/client/v1/rtc/transports \
  -H "Authorization: Bearer <access_token>"

Response:

{
  "errcode": "M_UNRECOGNIZED",
  "error": "Unrecognized request"
}

Expected

Synapse should expose the MatrixRTC transport endpoint when MSC4143 is enabled.

Notes

  • Synapse config clearly includes msc4143_enabled: true
  • matrix_rtc block is present in homeserver.yaml
  • Synapse has been restarted after config changes

Is there an additional flag or requirement to enable this endpoint?

Thanks

Steps to reproduce

  • list the steps
  • that reproduce the bug
  • using hyphens as bullet points

Homeserver

matrix.kimiu.fr (self-hosted)

Synapse Version

1.150.0

Installation Method

Docker (matrixdotorg/synapse)

Database

PostgreSQL (single server, no SQLite migration, no backup restore)

Workers

Single process

Platform

Debian 12 (OVH VPS), Synapse running in Docker via matrix-docker-ansible-deploy, Traefik reverse proxy, LiveKit + lk-jwt-service for MatrixRTC

Configuration

MSC4143 enabled (experimental_features.msc4143_enabled: true)

matrix_rtc configured with LiveKit:
matrix_rtc:
  transports:
    - type: livekit
      livekit_service_url: "https://rtc.kimiu.fr/livekit/jwt"

No custom modules, no unusual presence or message retention settings.

Relevant log output

No relevant errors found in Synapse logs.

The issue is reproducible via API:

curl -i https://matrix.kimiu.fr/_matrix/client/v1/rtc/transports \
  -H "Authorization: Bearer <access_token>"

Response:

HTTP/2 404

{"errcode":"M_UNRECOGNIZED","error":"Unrecognized request"}

Anything else that would be useful to know?

Element Call standalone (https://call.kimiu.fr) works correctly.

LiveKit and JWT service are reachable and healthy:
https://rtc.kimiu.fr/livekit/jwt/healthz → HTTP 200

The .well-known/matrix/client endpoint is correctly configured and returns the expected RTC config.

The issue only affects the MatrixRTC integration via Synapse.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions