No audio/video in Element X call #1306

Closed
opened 2026-01-22 02:47:46 +00:00 by yarostepdev · 6 comments

The issue description points to missing video, as it is more obvious immediately, but audio is also missing in the same way.

Self-hosted Matrix server setup:
Continuwuity, LiveKit, LiveKit-wjt, Element web and element call.
Test case: call between two clients, at least one of them uses Element X. Minimal setup is to create a room, not invite anybody and start video call in it.

Expected functionality (for simplified single user room call) - call starts and shows video from camera in it. It works for Element X with room at matrix.org (presumably uses Synapse) and it works for self-hosted setup when using element call web client.

When using Element X android client in a room hosted by Continuwuity server, picture from camera is only displayed in preview (join call button) but after joining there is empty screen.
image

Mention of issue specific to Element X client: 763#issuecomment-22001

Additional symptoms. Not sure if these are connected:
When other client calls me (I am using Element X) and I have the chat open there is no button to answer the call, only a message appears in the chat that call started.
image

LiveKit-jwt logs on start of single user room call from Element X (redacted)

Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Request from <reverse proxy ip>:44042 at "https://appassets.androidplatform.net"
Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Request from <reverse proxy ip>:44056 at "https://appassets.androidplatform.net"
Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Processing legacy SFU request
Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Got Matrix user info for @test_user_1:<my private server> (full access)
Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Created LiveKit room sid: RM_...Nz (alias: 9y...RY) for full-access Matrix user @test_user_1:<my private server> (LiveKit identity: @test_user_1:<my private server>:JU...Do

LiveKit SFU logs on start of single user room call from Element X (redacted)

Jan 22 02:23:40 matrix livekit-server[11686]: 2026-01-22T02:23:40.154Z        INFO        livekit.api        service/twirp.go:145        API RoomService.CreateRoom        {"service": "RoomService", "method": "CreateRoom", "room": "9y...RY", "request": {"name": "9y...RY", "emptyTimeout": 300, "departureTimeout": 20}, "duration": "307.688µs", "status": "200"}
# Silence until room is deleted

Redacted example of the same test case but successfully performed when using element call web client on the same private server (for comparison)

Jan 22 02:37:52 matrix livekit-server[11686]: 2026-01-22T02:37:52.359Z        INFO        livekit
.api        service/twirp.go:145        API RoomService.CreateRoom        {"service": "RoomServic
e", "method": "CreateRoom", "room": "5Y...LA", "request": {"n
ame": "5Y...LA", "emptyTimeout": 300, "departureTimeout": 20}
, "duration": "375.401µs", "status": "200"}
Jan 22 02:37:52 matrix livekit-server[11686]: 2026-01-22T02:37:52.373Z        INFO        livekit
        service/roommanager.go:413        starting RTC session        {"room": "5Y...LA", "roomID": "RM_...rf", "participant": ...
# And to be continued with many logs.
The issue description points to missing video, as it is more obvious immediately, but audio is also missing in the same way. Self-hosted Matrix server setup: Continuwuity, LiveKit, LiveKit-wjt, Element web and element call. Test case: call between two clients, at least one of them uses Element X. Minimal setup is to create a room, not invite anybody and start video call in it. Expected functionality (for simplified single user room call) - call starts and shows video from camera in it. It works for Element X with room at matrix.org (presumably uses Synapse) and it works for self-hosted setup when using element call web client. When using Element X android client in a room hosted by Continuwuity server, picture from camera is only displayed in preview (join call button) but after joining there is empty screen. ![image](/attachments/ab7b809c-b55a-4d27-9bf3-fcfa2466278f) Mention of issue specific to Element X client: [763#issuecomment-22001](https://forgejo.ellis.link/continuwuation/continuwuity/issues/763#issuecomment-22001) Additional symptoms. Not sure if these are connected: When other client calls me (I am using Element X) and I have the chat open there is no button to answer the call, only a message appears in the chat that call started. ![image](/attachments/4426f49b-8e7d-4237-8933-824f5df116b3) **LiveKit-jwt logs on start of single user room call from Element X (redacted)** ``` Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Request from <reverse proxy ip>:44042 at "https://appassets.androidplatform.net" Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Request from <reverse proxy ip>:44056 at "https://appassets.androidplatform.net" Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Processing legacy SFU request Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Got Matrix user info for @test_user_1:<my private server> (full access) Jan 22 02:23:40 matrix lk-jwt-service_linux_amd64[11692]: 2026/01/22 02:23:40 Created LiveKit room sid: RM_...Nz (alias: 9y...RY) for full-access Matrix user @test_user_1:<my private server> (LiveKit identity: @test_user_1:<my private server>:JU...Do ``` **LiveKit SFU logs on start of single user room call from Element X (redacted)** ``` Jan 22 02:23:40 matrix livekit-server[11686]: 2026-01-22T02:23:40.154Z INFO livekit.api service/twirp.go:145 API RoomService.CreateRoom {"service": "RoomService", "method": "CreateRoom", "room": "9y...RY", "request": {"name": "9y...RY", "emptyTimeout": 300, "departureTimeout": 20}, "duration": "307.688µs", "status": "200"} # Silence until room is deleted ``` **Redacted example of the same test case but successfully performed when using element call web client on the same private server (for comparison)** ``` Jan 22 02:37:52 matrix livekit-server[11686]: 2026-01-22T02:37:52.359Z INFO livekit .api service/twirp.go:145 API RoomService.CreateRoom {"service": "RoomServic e", "method": "CreateRoom", "room": "5Y...LA", "request": {"n ame": "5Y...LA", "emptyTimeout": 300, "departureTimeout": 20} , "duration": "375.401µs", "status": "200"} Jan 22 02:37:52 matrix livekit-server[11686]: 2026-01-22T02:37:52.373Z INFO livekit service/roommanager.go:413 starting RTC session {"room": "5Y...LA", "roomID": "RM_...rf", "participant": ... # And to be continued with many logs. ```
yarostepdev changed title from No video in Element X call to No audio/video in Element X call 2026-01-22 11:15:37 +00:00
nex added this to the 0.5.5 milestone 2026-01-22 13:05:59 +00:00

Continuity does not support the delayed event functionality required by Element Call (https://github.com/matrix-org/matrix-spec-proposals/blob/toger5/expiring-events-keep-alive/proposals/4140-delayed-events-futures.md), which causes stuttering during video and voice calls in ElementX. Although this issue was raised six months ago, Continuity seems to have made no progress in resolving it. However, tuwunel has solved the Element Call problem.

Continuity does not support the delayed event functionality required by Element Call (https://github.com/matrix-org/matrix-spec-proposals/blob/toger5/expiring-events-keep-alive/proposals/4140-delayed-events-futures.md), which causes stuttering during video and voice calls in ElementX. Although this issue was raised six months ago, Continuity seems to have made no progress in resolving it. However, tuwunel has solved the Element Call problem.
Owner

Delayed events are unrelated to this issue, not required for functionality, and a lack of them doesn't cause the issues described?

Delayed events are unrelated to this issue, not required for functionality, and a lack of them doesn't cause the issues described?

We can't have voice calls. We can't migrate to tuwunel. What can we do to be able to have voice calls?

We can't have voice calls. We can't migrate to tuwunel. What can we do to be able to have voice calls?
Owner

You can help us figure out what isn't working in our sliding sync implementation so that we can fix it, but other than that, nothing but wait. If it's a critical issue for you I suggest using something out of band like Jitsi in the meantime. I promise we're looking into this but just stretched for development bandwidth.

You can help us figure out what isn't working in our sliding sync implementation so that we can fix it, but other than that, nothing but wait. If it's a critical issue for you I suggest using something out of band like Jitsi in the meantime. I promise we're looking into this but just stretched for development bandwidth.
Contributor

I found the issue in the sliding sync impl. I'm not really an expert on the spec, but seems wildcards weren't being properly handled with the state_key. I was able to call between two accounts with my changes. I'm going to open a PR in the morning once I ensure it all works and that my changes fit the CONTRIBUTING.md

I found the issue in the sliding sync impl. I'm not really an expert on the spec, but seems wildcards weren't being properly handled with the state_key. I was able to call between two accounts with my changes. I'm going to open a PR in the morning once I ensure it all works and that my changes fit the CONTRIBUTING.md
Contributor

I believe this is now fixed in latest! Can probably be closed.

I believe this is now fixed in latest! Can probably be closed.
Sign in to join this conversation.
No milestone
No project
No assignees
6 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity#1306
No description provided.