talk-android
talk-android copied to clipboard
Crash during call if no STUN server is available
Steps to reproduce
- Remove STUN server from Talk configurations on the Nextcloud instance. Don't use the trash symbol! Only remove the string from the text field.
- Freshly start NC Talk for Android
- Start a call
Expected behaviour
App informs that no call can be made because no STUN server is configured. The administrator must be contacted
Actual behaviour
App crashes
Device brand and model
Samsung SM-A326B
Android version
13
Nextcloud Talk app version
15.0.0 RC3
Nextcloud server version
24.0.5
Talk version
14.0.5
Custom Signaling server configured
No response
Custom TURN server configured
No
Custom STUN server configured
No
Android logs
No response
Server log
No response
Additional information
The stacktrace:
java.lang.NullPointerException: Attempt to invoke virtual method 'org.webrtc.PeerConnection$IceConnectionState org.webrtc.PeerConnection.iceConnectionState()' on a null object reference
at com.nextcloud.talk.activities.CallActivity.setupVideoStreamForLayout(CallActivity.java:2349)
at com.nextcloud.talk.activities.CallActivity.lambda$processUsersInRoom$14$com-nextcloud-talk-activities-CallActivity(CallActivity.java:1904)
at com.nextcloud.talk.activities.CallActivity$$ExternalSyntheticLambda20.run(Unknown Source:4)
at android.app.Activity.runOnUiThread(Activity.java:7258)
at com.nextcloud.talk.activities.CallActivity.processUsersInRoom(CallActivity.java:1903)
at com.nextcloud.talk.activities.CallActivity.receivedSignalingMessage(CallActivity.java:1650)
at com.nextcloud.talk.activities.CallActivity.receivedSignalingMessages(CallActivity.java:1634)
at com.nextcloud.talk.activities.CallActivity.access$2300(CallActivity.java:185)
at com.nextcloud.talk.activities.CallActivity$13$1.onNext(CallActivity.java:1494)
at com.nextcloud.talk.activities.CallActivity$13$1.onNext(CallActivity.java:1484)
at io.reactivex.internal.operators.observable.ObservableRetryPredicate$RepeatObserver.onNext(ObservableRetryPredicate.java:69)
at io.reactivex.internal.operators.observable.ObservableTakeWhile$TakeWhileObserver.onNext(ObservableTakeWhile.java:88)
at io.reactivex.internal.util.HalfSerializer.onNext(HalfSerializer.java:107)
at io.reactivex.internal.operators.observable.ObservableRepeatWhen$RepeatWhenObserver.onNext(ObservableRepeatWhen.java:100)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8751)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
There is also a related issue in spreed: https://github.com/nextcloud/spreed/pull/8020 But also if that one is fixed, it must handled better in the client.