nextcloud / nextcloud/talk-android
crash during a video call (Failed to create EGL context)
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 739
- Forks
- 321
- Avg merge
- 14h 59m
- Merged PRs (30d)
- 151
Description
Steps to reproduce
1.Enter a session in the APP
2.Enable video call
3.Description During a video call, five users frequently enter or exit the video call (Because they lost the connection after entering the video call and tried to reconnect to the call)
4. Apps running in the background are more likely to crash (the operating system does not kill the process, even if you do not do this step still often crash)
Expected behaviour
app works normally
Actual behaviour
When they frequently join/drop out of a call, it causes the talk software to crash 90% of the time for the normal person
Device brand and model
Xiaomi Redmi K40
Android version
13
Nextcloud Talk app version
18.0.1
Nextcloud server version
28.0.2
Talk version
18.0.3
Custom Signaling server configured
None
Custom TURN server configured
None
Custom STUN server configured
None
Android logs
java.lang.RuntimeException: android.opengl.GLException: Failed to create EGL context: 0x3000
at org.webrtc.EglBase14Impl.createEglContext(EglBase14Impl.java:268)
at org.webrtc.EglBase14Impl.<init>(EglBase14Impl.java:63)
at org.webrtc.EglBase$-CC.createEgl14(EglBase.java:213)
at org.webrtc.EglBase$-CC.create(EglBase.java:156)
at org.webrtc.EglRenderer.lambda$init$0$org-webrtc-EglRenderer(EglRenderer.java:241)
at org.webrtc.EglRenderer$$ExternalSyntheticLambda7.run(Unknown Source:6)
at org.webrtc.ThreadUtils$4.call(ThreadUtils.java:199)
at org.webrtc.ThreadUtils$4.call(ThreadUtils.java:196)
at org.webrtc.ThreadUtils$3.run(ThreadUtils.java:173)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at org.webrtc.EglRenderer$HandlerWithExceptionCallback.dispatchMessage(EglRenderer.java:103)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.os.HandlerThread.run(HandlerThread.java:67)
at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:184)
at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:196)
at org.webrtc.EglRenderer.init(EglRenderer.java:232)
at org.webrtc.EglRenderer.init(EglRenderer.java:259)
at org.webrtc.SurfaceEglRenderer.init(SurfaceEglRenderer.java:61)
at org.webrtc.SurfaceViewRenderer.init(SurfaceViewRenderer.java:87)
at org.webrtc.SurfaceViewRenderer.init(SurfaceViewRenderer.java:71)
at com.nextcloud.talk.activities.CallActivity.initSelfVideoView(CallActivity.java:840)
at com.nextcloud.talk.activities.CallActivity.initViews(CallActivity.java:809)
at com.nextcloud.talk.activities.CallActivity.updateUiForNormalMode(CallActivity.java:3087)
at com.nextcloud.talk.activities.CallActivity.onPictureInPictureModeChanged(CallActivity.java:3022)
at android.app.Activity.dispatchPictureInPictureModeChanged(Activity.java:8867)
at android.app.ActivityThread.handleWindowingModeChangeIfNeeded(ActivityThread.java:6264)
at android.app.ActivityThread.performActivityConfigurationChanged(ActivityThread.java:6079)
at android.app.ActivityThread.performConfigurationChangedForActivity(ActivityThread.java:6056)
at android.app.ActivityThread.handleActivityConfigurationChanged(ActivityThread.java:6401)
at android.app.servertransaction.ActivityConfigurationChangeItem.execute(ActivityConfigurationChangeItem.java:53)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2389)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8261)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)
Caused by: android.opengl.GLException: Failed to create EGL context: 0x3000
at org.webrtc.EglBase14Impl.createEglContext(EglBase14Impl.java:268)
at org.webrtc.EglBase14Impl.<init>(EglBase14Impl.java:63)
at org.webrtc.EglBase$-CC.createEgl14(EglBase.java:213)
at org.webrtc.EglBase$-CC.create(EglBase.java:156)
at org.webrtc.EglRenderer.lambda$init$0$org-webrtc-EglRenderer(EglRenderer.java:241)
at org.webrtc.EglRenderer$$ExternalSyntheticLambda7.run(Unknown Source:6)
at org.webrtc.ThreadUtils$4.call(ThreadUtils.java:199)
at org.webrtc.ThreadUtils$4.call(ThreadUtils.java:196)
at org.webrtc.ThreadUtils$3.run(ThreadUtils.java:173)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at org.webrtc.EglRenderer$HandlerWithExceptionCallback.dispatchMessage(EglRenderer.java:103)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.os.HandlerThread.run(HandlerThread.java:67)
Server log
No response
Additional information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with CallActivity.initSelfVideoView and initViews around the provided stack trace, then trace the Picture-in-Picture transition through updateUiForNormalMode. Reproduce repeated join and leave cycles on Android 13, especially while returning from background, and inspect the WebRTC EglRenderer initialization failure. Done means this scenario no longer crashes when the EGL context cannot be created.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- audio-video-rtc, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100