talk-desktop icon indicating copy to clipboard operation
talk-desktop copied to clipboard

Desktop Talk join call fails due to stale TURN credentials → coturn: Cannot find credentials of user and ICE never connects

Open AssiaAzzouzi opened this issue 4 months ago • 5 comments

How to use GitHub

  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Steps to reproduce

  1. User joins a Talk call using Nextcloud Desktop — user agent example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) NextcloudTalk/1.2.5 Chrome/138.0.7204.100 Electron/37.2.3 Safari/537.36
  2. User leaves the call. Wait until the previously issued TURN REST credential expires (the day after: > 24h).
  3. User attempts to join a call. Joining fails: no media, ICE never connects.

Notes:

Once, restarting the signaling server (HPB) made joins work again. But other time restarting signaling server didn't make things work. The affected participant has to restart his laptop to be able to join call (with fresh credentials)

Expected behaviour

On every call, the Desktop client should fetch fresh TURN credentials so coturn accepts the Allocate and ICE can succeed.

Actual behaviour

The Desktop client appears to reuse stale TURN credentials from a previous session. Coturn then rejects Allocate and ICE fails.

in inspect element there is:

Image

Diagnosis and logs

Here are logs in coturn:

ERROR: check_stun_auth: Cannot find credentials of user <timestamp:xxxxx>

where timestamp is older than > 24h

Diagnosis report

Diagnosis report

Diagnosis report

Nextcloud Talk Desktop
Version v1.2.5
Built-in Talk version v21.1.2
Release channel stable
Operating system Darwin 24.5.0 (Darwin Kernel Version 24.5.0: Tue Apr 22 19:54:49 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T6000)
Executable Path /Applications/Nextcloud Talk.app/Contents/MacOS/Nextcloud Talk
Connected to -
Nextcloud version 31.0.7
Nextcloud Talk version 21.1.2
notifications app enabled ✅ yes
notify_push app enabled ❌ no

Application config

{
  "launchAtStartup": true,
  "theme": "default",
  "systemTitleBar": true,
  "monochromeTrayIcon": true,
  "zoomFactor": 1,
  "playSoundChat": "respect-dnd",
  "playSoundCall": "respect-dnd",
  "enableCallbox": "respect-dnd",
  "secondarySpeaker": false,
  "secondarySpeakerDevice": null,
  "trustedFingerprints": []
}

AssiaAzzouzi avatar Aug 16 '25 12:08 AssiaAzzouzi

I sometimes have the same issue, but not always.

Joy-G25 avatar Aug 27 '25 18:08 Joy-G25

The affected participant has to restart his laptop to be able to join call (with fresh credentials)

A laptop? Restarting the Talk Desktop client doesn't help?

ShGKme avatar Aug 27 '25 18:08 ShGKme

@danxuliu Could you assist here?

ShGKme avatar Aug 27 '25 18:08 ShGKme

The affected participant has to restart his laptop to be able to join call (with fresh credentials)

A laptop? Restarting the Talk Desktop client doesn't help?

Before restarting laptop the concerned participant told us he leaved and re-joined the app, maybe he didn't restart the app correctly.

AssiaAzzouzi avatar Aug 27 '25 19:08 AssiaAzzouzi

Not refreshing the TURN credentials once they expired is a known issue. But I would expect that the desktop app fetches the signaling settings again and, with them, refreshed TURN credentials, when switching to a different conversation (just like done in the WebUI) 🤔

danxuliu avatar Aug 29 '25 13:08 danxuliu