Code:
---
client: Jellyfin for Android TV
client_version: 0.18.2
client_repository: https://github.com/jellyfin/jellyfin-androidtv
type: crash_report
format: markdown
---
### Logs
***Stack Trace***:
```log
java.lang.IllegalStateException: FragmentManager is already executing transactions
at androidx.fragment.app.FragmentManager.ensureExecReady(FragmentManager.java:1947)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1977)
at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:317)
at org.jellyfin.androidtv.ui.browsing.DestinationFragmentView.activateHistoryEntry(DestinationFragmentView.kt:159)
at org.jellyfin.androidtv.ui.browsing.DestinationFragmentView.goBack(DestinationFragmentView.kt:113)
at org.jellyfin.androidtv.ui.browsing.MainActivity.handleNavigationAction(MainActivity.kt:119)
at org.jellyfin.androidtv.ui.browsing.MainActivity.access$handleNavigationAction(MainActivity.kt:33)
at org.jellyfin.androidtv.ui.browsing.MainActivity$onCreate$2.invokeSuspend(MainActivity.kt:66)
at org.jellyfin.androidtv.ui.browsing.MainActivity$onCreate$2.invoke(Unknown Source:8)
at org.jellyfin.androidtv.ui.browsing.MainActivity$onCreate$2.invoke(Unknown Source:4)
at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2.emit(Emitters.kt:50)
at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:33)
at kotlinx.coroutines.flow.FlowKt__ChannelsKt.access$emitAllImpl$FlowKt__ChannelsKt(Channels.kt:1)
at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:14)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:65)
at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined(DispatchedTask.kt:231)
at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:149)
at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core(CancellableContinuationImpl.kt:504)
at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default(CancellableContinuationImpl.kt:493)
at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:359)
at kotlinx.coroutines.flow.SharedFlowImpl.tryEmit(SharedFlow.kt:414)
at org.jellyfin.androidtv.ui.navigation.NavigationRepositoryImpl.goBack(NavigationRepository.kt:93)
at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.closePlayer(CustomPlaybackOverlayFragment.java:1298)
at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onStop(CustomPlaybackOverlayFragment.java:701)
at androidx.fragment.app.Fragment.performStop(Fragment.java:3346)
at androidx.fragment.app.FragmentStateManager.stop(FragmentStateManager.java:700)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:324)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2214)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2115)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:2002)
at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:317)
at org.jellyfin.androidtv.ui.browsing.DestinationFragmentView.activateHistoryEntry(DestinationFragmentView.kt:159)
at org.jellyfin.androidtv.ui.browsing.DestinationFragmentView.onRestoreInstanceState(DestinationFragmentView.kt:187)
at android.view.View.dispatchRestoreInstanceState(View.java:21633)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4001)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4007)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4007)
at android.view.View.restoreHierarchyState(View.java:21611)
at com.android.internal.policy.PhoneWindow.restoreHierarchyState(PhoneWindow.java:2228)
at android.app.Activity.onRestoreInstanceState(Activity.java:1796)
at android.app.Activity.performRestoreInstanceState(Activity.java:1749)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1464)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3686)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:224)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:204)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7924)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@82ce364, Dispatchers.Main.immediate]
```
***Logcat***:
```log
01-01 16:28:24.552 D/SurfaceUtils( 4336): disconnecting from surface 0xb4000075cb6d4010, reason disconnectFromSurface
01-01 16:28:24.557 D/ACRA ( 4336): onActivityDestroyed class org.jellyfin.androidtv.ui.browsing.MainActivity
01-01 16:28:24.560 D/MediaCodec( 4336): flushMediametrics
01-01 16:28:24.562 D/MediaCodec( 4336): flushMediametrics
01-01 16:28:24.672 D/ACRA ( 4336): onActivityCreated class org.jellyfin.androidtv.ui.browsing.MainActivity
01-01 16:28:24.711 D/BrowseGridFragment( 4336): numCardsScreen <0>
01-01 16:28:24.715 I/org.jellyfin.sdk.api.ktor.KtorClient( 4336): GET http://00000000000/UserViews?includeHidden=false
01-01 16:28:24.715 I/HomeRowsFragment( 4336): Updating audio queue in HomeFragment (onQueueStatusChanged)
01-01 16:28:24.718 V/io.ktor.client.plugins.HttpPlainText( 4336): Adding Accept-Charset=UTF-8 to http://00000000000/UserViews?includeHidden=false
01-01 16:28:24.722 D/Window ( 4336): fjh20231219 attrs.flags 65792 flags 65792
01-01 16:28:24.722 D/Window ( 4336): fjh20231219 attrs.flags 8454400 flags 8388608
01-01 16:28:24.722 D/Window ( 4336): fjh20231219 attrs.flags -2139029248 flags -2147483648
01-01 16:28:24.729 D/ACRA ( 4336): onActivityStarted class org.jellyfin.androidtv.ui.browsing.MainActivity
01-01 16:28:24.758 V/io.ktor.client.plugins.HttpCallValidator( 4336): Validating response for request http://0000000000/UserViews?includeHidden=false
01-01 16:28:24.759 V/io.ktor.client.plugins.DefaultResponseValidation( 4336): Skipping default response validation for http://0000000000/UserViews?includeHidden=false
01-01 16:28:24.761 V/io.ktor.client.plugins.defaultTransformers( 4336): Transformed with default transformers response body for http://188.90.46.139:9000/UserViews?includeHidden=false to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
01-01 16:28:24.802 I/ExoPlayerImpl( 4336): Init 481def8 [AndroidXMedia3/1.4.1] [rk3528_box, X88Pro13.LGX6521S.8800.F1010, RockChip, 33]
01-01 16:28:24.802 I/DefaultRenderersFactory( 4336): Loaded FfmpegVideoRenderer.
01-01 16:28:24.812 I/DefaultRenderersFactory( 4336): Loaded FfmpegAudioRenderer.
01-01 16:28:24.825 I/PlaybackController( 4336): Play called from state: IDLE with pos: 0 and sub index: null
01-01 16:28:24.825 D/PlaybackController( 4336): Max bitrate is: 200000000
01-01 16:28:24.829 D/jellyfin-apiclient( 4336): Adding request to queue: http://000.0000.000/Items/dfe4bfbb-1499-52c7-e8c3-6ad8ea6d8fee/PlaybackInfo?format=json
01-01 16:28:24.831 D/TrafficStats( 4336): tagSocket(83) with statsTag=0x27c83ce5, statsUid=-1
01-01 16:28:24.832 W/OnBackInvokedCallback( 4336): OnBackInvokedCallback is not enabled for the application.
01-01 16:28:24.832 W/OnBackInvokedCallback( 4336): Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
01-01 16:28:24.846 D/CustomPlaybackOverlayFragment( 4336): Stopping!
01-01 16:28:24.846 D/CustomPlaybackOverlayFragment( 4336): this fragment belongs to the current session, ending it
01-01 16:28:24.847 D/PlaybackController( 4336): stop called at 0
01-01 16:28:24.848 I/ExoPlayerImpl( 4336): Release 481def8 [AndroidXMedia3/1.4.1] [rk3528_box, X88Pro13.LGX6521S.8800.F1010, RockChip, 33] [media3.common, media3.session, media3.exoplayer, media3.decoder, media3.ui, media3.datasource, media3.extractor, media3.decoder.ffmpeg]
01-01 16:28:24.849 D/NavigationRepositoryImpl( 4336): Navigating back
01-01 16:28:24.862 E/ACRA ( 4336): ACRA caught a IllegalStateException for org.jellyfin.androidtv
01-01 16:28:24.862 E/ACRA ( 4336): java.lang.IllegalStateException: FragmentManager is already executing transactions
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.FragmentManager.ensureExecReady(FragmentManager.java:1947)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1977)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:317)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.DestinationFragmentView.activateHistoryEntry(DestinationFragmentView.kt:159)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.DestinationFragmentView.goBack(DestinationFragmentView.kt:113)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.MainActivity.handleNavigationAction(MainActivity.kt:119)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.MainActivity.access$handleNavigationAction(MainActivity.kt:33)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.MainActivity$onCreate$2.invokeSuspend(MainActivity.kt:66)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.MainActivity$onCreate$2.invoke(Unknown Source:8)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.MainActivity$onCreate$2.invoke(Unknown Source:4)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2.emit(Emitters.kt:50)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:33)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.flow.FlowKt__ChannelsKt.access$emitAllImpl$FlowKt__ChannelsKt(Channels.kt:1)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:14)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:65)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined(DispatchedTask.kt:231)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:149)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core(CancellableContinuationImpl.kt:504)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default(CancellableContinuationImpl.kt:493)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:359)
01-01 16:28:24.862 E/ACRA ( 4336): at kotlinx.coroutines.flow.SharedFlowImpl.tryEmit(SharedFlow.kt:414)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.navigation.NavigationRepositoryImpl.goBack(NavigationRepository.kt:93)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.closePlayer(CustomPlaybackOverlayFragment.java:1298)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onStop(CustomPlaybackOverlayFragment.java:701)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.Fragment.performStop(Fragment.java:3346)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.FragmentStateManager.stop(FragmentStateManager.java:700)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:324)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2214)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2115)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:2002)
01-01 16:28:24.862 E/ACRA ( 4336): at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:317)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.DestinationFragmentView.activateHistoryEntry(DestinationFragmentView.kt:159)
01-01 16:28:24.862 E/ACRA ( 4336): at org.jellyfin.androidtv.ui.browsing.DestinationFragmentView.onRestoreInstanceState(DestinationFragmentView.kt:187)
01-01 16:28:24.862 E/ACRA ( 4336): at android.view.View.dispatchRestoreInstanceState(View.java:21633)
01-01 16:28:24.862 E/ACRA ( 4336): at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4001)
01-01 16:28:24.862 E/ACRA ( 4336): at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4007)
01-01 16:28:24.862 E/ACRA ( 4336): at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4007)
01-01 16:28:24.862 E/ACRA ( 4336): at android.view.View.restoreHierarchyState(View.java:21611)
01-01 16:28:24.862 E/ACRA ( 4336): at com.android.internal.policy.PhoneWindow.restoreHierarchyState(PhoneWindow.java:2228)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.Activity.onRestoreInstanceState(Activity.java:1796)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.Activity.performRestoreInstanceState(Activity.java:1749)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1464)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3686)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:224)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:204)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
01-01 16:28:24.863 E/ACRA ( 4336): at android.os.Handler.dispatchMessage(Handler.java:106)
01-01 16:28:24.863 E/ACRA ( 4336): at android.os.Looper.loopOnce(Looper.java:201)
01-01 16:28:24.863 E/ACRA ( 4336): at android.os.Looper.loop(Looper.java:288)
01-01 16:28:24.863 E/ACRA ( 4336): at android.app.ActivityThread.main(ActivityThread.java:7924)
01-01 16:28:24.863 E/ACRA ( 4336): at java.lang.reflect.Method.invoke(Native Method)
01-01 16:28:24.863 E/ACRA ( 4336): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
01-01 16:28:24.863 E/ACRA ( 4336): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
01-01 16:28:24.863 E/ACRA ( 4336): Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@82ce364, Dispatchers.Main.immediate]
01-01 16:28:24.863 D/ACRA ( 4336): Building report
01-01 16:28:24.866 D/ACRA ( 4336): Starting collectors with priority FIRST
01-01 16:28:24.867 D/ACRA ( 4336): Calling collector org.acra.collector.DropBoxCollector
01-01 16:28:24.867 D/ACRA ( 4336): Calling collector org.acra.collector.LogCatCollector
01-01 16:28:24.867 D/ACRA ( 4336): Collector org.acra.collector.DropBoxCollector completed
01-01 16:28:24.868 D/ACRA ( 4336): Calling collector org.acra.collector.StacktraceCollector
01-01 16:28:24.871 D/ACRA ( 4336): Collector org.acra.collector.StacktraceCollector completed
01-01 16:28:24.874 D/ACRA ( 4336): Retrieving logcat output (buffer:default)...
```
### App information
***App version***: `0.18.2` (`180299`)
***Package name***: `org.jellyfin.androidtv`
***Build***:
```json
{"BOARD":"RK3528","BOOTLOADER":"unknown","BRAND":"RockChip","CPU_ABI":"arm64-v8a","CPU_ABI2":"","DEVICE":"rk3528_box","DISPLAY":"google\/redfin\/redfin:12\/SP1A.210812.015\/7679548:user\/release-keys__2021-10-05","FINGERPRINT":"google\/redfin\/redfin:12\/SP1A.210812.015\/7679548:user\/release-keys__2021-10-05","HARDWARE":"rk30board","HOST":"hugsun03","ID":"TQ3C.230805.001.B2","IS_DEBUGGABLE":true,"IS_EMULATOR":false,"MANUFACTURER":"RockChip","MODEL":"X88Pro13.LGX6521S.8800.F1010","ODM_SKU":"unknown","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"rk3528_box","RADIO":"unknown","SKU":"unknown","SOC_MANUFACTURER":"Rockchip","SOC_MODEL":"unknown","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":["arm64-v8a"],"SUPPORTED_ABIS":["arm64-v8a","armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1731467546000,"TYPE":"userdebug","UNKNOWN":"unknown","USER":"pan668","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"eng.pan668.20241113.111229","KNOWN_CODENAMES":"{HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}","MEDIA_PERFORMANCE_CLASS":0,"PREVIEW_SDK_FINGERPRINT":"REL","PREVIEW_SDK_INT":0,"RELEASE":"13","RELEASE_OR_CODENAME":"13","RELEASE_OR_PREVIEW_DISPLAY":"13","SDK":"33","SDK_INT":33,"SECURITY_PATCH":"2023-08-05"}}
```
***Build config***:
```json
{"APPLICATION_ID":"org.jellyfin.androidtv","BUILD_TYPE":"release","DEBUG":false,"DEVELOPMENT":false,"VERSION_CODE":180299,"VERSION_NAME":"0.18.2"}
```
### Device information
***Android version***: `13`
***Device brand***: `RockChip`
***Device product***: `rk3528_box`
***Device model***: `X88Pro13.LGX6521S.8800.F1010`
### Crash information
***Start time***: `2024-12-31T22:17:37.724+00:00`
***Crash time***: `2025-01-01T16:28:24.955+00:00`