Critical interoperability issue: Nextcloud Talk calls between Android and iPhone cause iOS client restart/crash, while Android↔Android and iPhone↔iPhone calls work correctly

Hello again Nextcloud Talk Team,

We have identified a reproducible issue affecting calls between Android and iPhone clients.

Environment:

Nextcloud Talk iOS: 24.0.1 (latest)
iOS: 26.5
Nextcloud Talk Android client (latest available version)
Issue is consistently reproducible

Problem description:

Calls between devices running the same platform work correctly:

Android ↔ Android — works normally.
iPhone ↔ iPhone — works normally.

The issue only occurs when calls involve different platforms:

iPhone → Android — issue occurs.
Android → iPhone — issue occurs.

During such calls, the iOS client successfully receives or initiates the call, joins the conversation room, and starts the WebRTC session establishment process. However, a few seconds after successfully joining the call, the Nextcloud Talk application on iPhone unexpectedly restarts or crashes.

As a result, the call is interrupted or becomes unstable.

Observed behavior in logs:

The following sequence is repeatedly observed during problematic calls:

Joining room for call true
Joined room successfully
Start call in NCCallController
Join call in NCCallController
Did join call in NCCallController
Start pulling internal signaling messages

A few seconds later, the log shows:

Starting com.nextcloud.Talk, version 24.0.1

This indicates that the application process is being restarted after the call has already been successfully established.

Additional log entries observed during failed attempts include:

Could not join call, retrying
Force reconnect
CallKit provider end call action
CallKit provider end call action for token (null)

Expected behavior:

Calls between Android and iPhone clients should be as stable as calls between devices running the same platform.

Actual behavior:

During Android-to-iPhone or iPhone-to-Android calls, the iOS client may restart or crash shortly after successfully joining the call.

Additional observation:

Because Android<->Android and iPhone<->iPhone calls work correctly, the issue appears to be related specifically to interoperability between Android and iOS clients.

Possible areas involved may include:

WebRTC signaling
SDP negotiation
ICE candidate handling
Codec negotiation
CallKit integration
PushKit integration
Cross-platform call state synchronization

Please investigate whether this is a known issue and advise if additional diagnostic information is required.

We can provide complete iOS debug logs upon request.

Hello again, thanks for the report again :wink:
Hm, that is indeed very weird. I’ll check it and will reach out regarding the logfile, that would be interesting to check as well.

This is fine, it only shows that you received a notification for a call, that could not be decrypted. Probably you reinstalled the app without removing the account, so Nextcloud still pushes to the old push token. You have to remove it from the Nextcloud side.

For iOS ↔ Android there seems to be indeed an issue, again, only with internal signaling :sweat_smile: . We are taking a look for a fix.

Please try again with 24.0.2