Summary
On mobile (iOS and Android), the call controls UI overlay intermittently fails to render during active voice calls, while audio continues to function normally.
Steps to Reproduce
- Set up a self-hosted Mattermost instance with the Calls plugin enabled (plugin version: [1.11.4], server version: [11.6.1])
- Join a voice call from a mobile device using the Mattermost mobile app (v2.40.0)
- Observe whether the call controls overlay (mute, camera, end call buttons) renders on screen
- Repeat across multiple devices and across multiple days — the issue rotates between devices
Expected Behavior
Once a voice call is joined, the call controls UI overlay should reliably appear on screen, allowing the user to mute, manage, or end the call. This should be consistent across all devices and sessions.
Observed Behavior
In approximately half of the tested sessions, the call controls screen fails to mount after joining a call. Audio is established and works correctly, but the UI overlay does not appear — leaving the user with no visible way to interact with the call. The issue is not device- or OS-specific: it rotates between different devices across days, which suggests a timing or race condition between WebRTC audio session initialization and the call controls screen mounting rather than a hardware or platform issue.
No relevant error messages have surfaced to the end user.
Environment:
- Mattermost Server: self-hosted, [11.6.1 ]
- Calls Plugin: [1.11.4 ]
- Mobile App: v2.40.0 (iOS and Android both affected)
- Deployment: Ubuntu VM behind NGINX reverse proxy; WebRTC/Calls traffic on dedicated port (UDP/TCP 8445), bypassing NGINX
- SSL: CA-signed Let’s Encrypt certificate