Flutter WebRTC calls failed silently due to three bugs, including a call ID mismatch and TURN relay misconfiguration
A developer team spent two weeks debugging a Flutter app where one-to-one audio and video calls stalled after the offer was sent and the callee never received a ring. Their first suspect, the relay server, was indeed broken, but fixing it did not solve the problem because a signalling bug sat upstream. The backend was looking up a call session by an ID that actually held the conversation ID, so every offer, answer and ICE candidate was silently dropped. Once routing was changed to use conversation membership, calls worked on office Wi-Fi but still failed on mobile networks, pointing to symmetric NAT. The TURN relay was unreachable because it sat behind NAT with a single forwarded port and advertised an address that only existed inside its host, so it was moved to a machine with a public IP.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)
Log in to join the discussion and vote.
Log in