Error activating calls-plugin (Docker Swarm)

Summary

Error “failed to get public IP address: failed to get public address: read udp4 0.0.0.0:8069: i/o timeout” when enabling calls-plugin

Steps to reproduce

  1. Run Mattermost 7.0.0 in a Docker Swarm on a local network
  2. Map port for the plugin to the service (in my case port 8069)
  3. enable Calls with the previously specified port
  4. Restart (not sure if this step is required)

Expected behavior

Calls should be enabled and users should be able to start calls

Observed behavior (that appears unintentional)

Calls aren’t available for users and we see these log-messages:

{"timestamp":"2022-06-15 10:00:00.072 +02:00","level":"error","msg":"failed to get public IP address: failed to get public address: read udp4 0.0.0.0:8069: i/o timeout","caller":"app/plugin_api.go:940","plugin_id":"com.mattermost.calls","origin":"main.(*Plugin).OnActivate activate.go:117"}
{"timestamp":"2022-06-15 10:00:00.075 +02:00","level":"info","msg":"plugin process exited","caller":"plugin/hclog_adapter.go:61","plugin_id":"com.mattermost.calls","wrapped_extras":"pathplugins/com.mattermost.calls/server/dist/plugin-linux-amd64pid71"}
{"timestamp":"2022-06-15 10:00:00.081 +02:00","level":"error","msg":"Failed to install prepackaged plugin","caller":"app/plugin.go:896","path":"/mattermost/prepackaged_plugins/mattermost-plugin-calls-v0.6.0-linux-amd64.tar.gz","error":"Failed to install extracted prepackaged plugin /mattermost/prepackaged_plugins/mattermost-plugin-calls-v0.6.0-linux-amd64.tar.gz: installExtractedPlugin: Unable to restart plugin on upgrade., failed to get public IP address: failed to get public address: read udp4 0.0.0.0:8069: i/o timeout"}
{"timestamp":"2022-06-15 10:00:05.191 +02:00","level":"error","msg":"failed to get public IP address: failed to get public address: read udp4 0.0.0.0:8069: i/o timeout","caller":"app/plugin_api.go:940","plugin_id":"com.mattermost.calls","origin":"main.(*Plugin).OnActivate activate.go:117"}
{"timestamp":"2022-06-15 10:00:05.195 +02:00","level":"warn","msg":"error closing client during Kill","caller":"plugin/hclog_adapter.go:70","plugin_id":"com.mattermost.calls","wrapped_extras":"errunexpected EOF"}
{"timestamp":"2022-06-15 10:00:05.195 +02:00","level":"warn","msg":"plugin failed to exit gracefully","caller":"plugin/hclog_adapter.go:72","plugin_id":"com.mattermost.calls"}
{"timestamp":"2022-06-15 10:00:05.195 +02:00","level":"info","msg":"plugin process exited","caller":"plugin/hclog_adapter.go:61","plugin_id":"com.mattermost.calls","wrapped_extras":"pathplugins/com.mattermost.calls/server/dist/plugin-linux-amd64pid94"}
{"timestamp":"2022-06-15 10:00:05.195 +02:00","level":"error","msg":"Unable to activate plugin","caller":"app/plugin.go:139","plugin_id":"com.mattermost.calls","error":"failed to get public IP address: failed to get public address: read udp4 0.0.0.0:8069: i/o timeout"}

Additionally, Mattermost seems to lose the network connection when the plugin is enabled, but there is nothing about that in the logs.

Apparently, setting ICE Host Override to the hostname of Mattermost resolves this issue: Failed to get public IP address · Issue #110 · mattermost/mattermost-plugin-calls · GitHub