Turn server connection issue

For Workers & Pages, what is the name of the domain?

Not used

What is the error number?

empty_track_error

What is the error message?

No track data from remote peer. Make sure the publisher peer is sending packets for this track

What is the issue or error you’re encountering

We are currently integrating Cloudflare Calls into our mobile application while also using TURN servers. However, we are facing connectivity issues when users connect from different networks (ISPs). To elaborate, suppose there are three ISPs: A: Cellular Network B: WiFi Network (with connection issues) C: WiFi Network We are in the final testing phase of the integration and are verifying whether all possible connection combinations work. Each of our testers is joining from different networks. For simplicity, let’s consider two testers. Connection Matrix: A → A: Connected B → B: Connected C → C: Connected A → B: No Connection A → C: Connected B → C: Connected The issue occurs only in the A → B connection. Upon adding remote tracks, the response looks something like this { "requiresImmediateRenegotiation": false, "tracks": [ { "sessionId": "******", "trackName": "*******", "mid": "", "errorCode": "empty_track_error", "errorDescription": "No track data from remote peer. Make sure the publisher peer is sending packets for this track" } ] } It happens everytime. Any help in diagnosing and resolving this issue would be greatly appreciated.

Just to double check: in the subject you are indicating a TURN error. But then your message doesn’t contain TURN specific problems. Can you verify in the browser (assuming that is your client) that you are getting TURN candidates?

Thanks for your response.
I could guarantee that both of the peers are receiving turn candidates.

For what’s it worth, I used the “Orange Meets” demo app too (https://demo.orange.cloudflare.dev/)
with two users connecting through the same problematic network combination. It didn’t work.

The server response for pulling remote tracks looks like this:

Requested URL:

https://demo.orange.cloudflare.dev/partytracks/sessions/6789122c6b2767a39b4bed3b640387e8/tracks/new?PullingTrack&correlationId=78c75748-da78-4de3-92bb-6d2ea01d0dbc

Payload

[
    {
        "sessionId": "f5643ee09c73e4e663150af4f5a94d78",
        "trackName": "986cd215-dc5f-468b-9f51-3fa138663dde",
        "location": "remote"
    },
    {
        "trackName": "c260e8fc-2838-471e-a77e-08d86ab893a3",
        "sessionId": "f5643ee09c73e4e663150af4f5a94d78",
        "location": "remote"
    }
]

Response

{
    "requiresImmediateRenegotiation": false,
    "tracks": [
        {
            "sessionId": "f5643ee09c73e4e663150af4f5a94d78",
            "trackName": "986cd215-dc5f-468b-9f51-3fa138663dde",
            "mid": "",
            "errorCode": "empty_track_error",
            "errorDescription": "No track data from remote peer. Make sure the publisher peer is sending packets for this track"
        },
        {
            "sessionId": "f5643ee09c73e4e663150af4f5a94d78",
            "trackName": "c260e8fc-2838-471e-a77e-08d86ab893a3",
            "mid": "",
            "errorCode": "empty_track_error",
            "errorDescription": "No track data from remote peer. Make sure the publisher peer is sending packets for this track"
        }
    ]
}

and the console error looks like this

chunk-K75QSKQC.js:5085 Uncaught Error: Missing Track Info
    at chunk-K75QSKQC.js:5085:12720
(anonymous)	@	chunk-K75QSKQC.js:5085
Promise.then		
(anonymous)	@	chunk-K75QSKQC.js:5085
setTimeout		
(anonymous)	@	chunk-K75QSKQC.js:5085
r._trySubscribe	@	chunk-K75QSKQC.js:20
(anonymous)	@	chunk-K75QSKQC.js:20
bi	@	chunk-K75QSKQC.js:20
r.subscribe	@	chunk-K75QSKQC.js:20
p	@	chunk-K75QSKQC.js:20
h	@	chunk-K75QSKQC.js:20
(anonymous)	@	chunk-K75QSKQC.js:20
u._error	@	chunk-K75QSKQC.js:20
e.error	@	chunk-K75QSKQC.js:20
(anonymous)	@	chunk-K75QSKQC.js:5085