element-hq / element-hq/element-call
MSC4143 endpoint fails on non-FQDN Synapse (/transport returns 404)
- Dominant language
- TypeScript
- Stars
- 996
- Forks
- 213
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 54
Description
### Steps to reproduce
1. Where are you starting? What can you see?
Start with a fresh Element Call deployment connected to a Synapse homeserver.
The homeserver server_name is set to a non-FQDN hostname (e.g., myserver).
Synapse is running latest stable release (e.g., v1.144.0).
Element Call is loaded in a browser or client app.
You can see the Element Call interface ready to log in / make a call.
2. What do you click?
Log in to Element Call with a valid account.
Navigate to the “Start a Call” or “Join a Room” feature.
The client attempts to discover the RTC backend (SFU / LiveKit) automatically.
3. More steps…
The client sends a request to:
https:///_matrix/client
MSC4143 discovery is not attempted.
If you try to manually request the MSC4143 transport endpoint:
GET /_matrix/client/unstable/org.matrix.msc4143/transport
Synapse responds with:
{"errcode":"M_UNRECOGNIZED","error":"Unrecognized request"}
6. Notes / Additional info
This is essentially the same problem reported in element-call issue element-hq/element-x-ios#3566.
Related PRs/issues: element-hq/element-x-ios#3629 (partial MSC4143 support), element-hq/element-x-ios#3569, element-hq/element-x-ios#3612.
Even after upgrading Synapse, MSC4143 discovery does not work.
### Outcome
#### What did you expect?
The client should query the MSC4143 endpoint.
Synapse should return valid transport information JSON.
Element Call should successfully discover the RTC backend without falling back to _matrix/client.
Non-FQDN server_name should not prevent MSC4143 from functioning.
#### What happened instead?
MSC4143 endpoint is unavailable / returns 404 or M_UNRECOGNIZED.
Element Call falls back to _matrix/client.
Calls fail because the client cannot locate the RTC backend.
No configuration option exists in Synapse to enable MSC4143.
### Operating system
_No response_
### Browser information
_No response_
### URL for webapp
_No response_
### Will you send logs?
Yes
Contributor guide
Research direction
No source file or test is named. Reproduce the non-FQDN case, inspect requests to /_matrix/client and the MSC4143 /transport endpoint, and compare discovery behavior; done means the client queries MSC4143, receives valid transport JSON, and does not fall back to _matrix/client.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100