so we have set up with docker a mattermost for teams for a month or so. It was working very well, including calls for any member of the team.
Some of those members, often use the calls plugins when connected to the server via a Wireguard VPN, also them had no issue reported…
Until 2 days ago at least… when we started experiencing random “timeout waiting for peer connections” when someone tries to join or start a call from a client connected via VPN. This is very unconsistent sometimes the same person connects or create a call without problems, some time they get the error but if they try again they are ok… from LAN everything works correctly.
I for example, didn’t manage to connect my Android to a single call via VPN, but if I connect my notebook with an hotspot provided by the same phone and connected to THE SAME VPN it does work!
Basically even reproducing the error is a random thing! It’s driving me mad! Connections are ok, VPN is stable, devices and server the same.
The only thing that has changed recently is docker 23… Could this be the problem?
I thought that I need a TURN… but why? If we needed something like this or some misconfiguration was in place it shouldn’t have worked on the first place and not in a random way.
I suspect this may be a bug but maybe someone could enlighten me with something I’m not considering.
Some other infos:
- Mattermost version 7.9.1 was upgraded 2 weeks ago (I think we were on 7.8 a month ago… could this upgrade bring some bugs?)
- Calls plugin version 0.14.1 upgraded from 0.14 while trying to fix the issue
- RTCD port directly exposed and reacheable
- No STUN/TURN
- ICE Host candidate set to server IP
- Clients connected to VPN are allowed to reach the server
- No network/VPN changes
- Android app latest version
Since I experience the problem just from android I couldn’t collect any error from a browser console. I will try to get it from someone experiencing this issue via desktop.
The only piece of error that I get from the server is
"level":"error","msg":"callback failed: call state is missing from channel state","caller":"app/plugin_api.go:976","plugin_id":"com.mattermost.calls","origin":"main.(*Plugin).handleLeave websocket.go:447"}