Plex on Android still crashing when using external subtitles

Server OS: Arch Linux
Server Version#: 1.21.3.4021
Server Log: Plex Media Server Logs_2021-02-09_21-30-55.zip (1.2 MB)

Phone: Pixel 3 XL
Android: 11 (Security Patch February 5, 2021)
Player Version#: 8.12.4.22902 (97c4e5ff) (Both Shield TV and Phone)
Android App Log: plex-log-Kitt3120.zip (319.8 KB)

TL;DR: ExoPlayer still throwing IndexOutOfBoundsException on Android when using external subtitles even though it should be fixed.

Hello,

since about a week, my Plex Apps on Shield TV and Android phone are behaving weird. Whenever I use a subtitle (SRT or SSA) that is pulled externally from Opensubtitles, my app crashes (crashes, restarts itself, greets me with the start-up animation, user selection and then I am back at my customizable start page). When I force transcoding, it works as the subtitle is being burned into the video by the server. So it’s not a problem with the subtitle itself being corrupt or with some Linux file permissions. But when the app tries to play the subtitle natively, it crashes.

On the other hand, subtitles that are embedded into the video file work just fine. It’s just external subtitles downloaded by the Opensubtitles Agent, subtitles that have been manually added through the interactive Opensubtitles search dialog and subtitles that are located next to the video file downloaded by Bazarr.

It’s worth noting that I also can’t play videos with external subtitles that just worked fine about 2 weeks ago. So it must be some recent change.

I activated the server-side log and watched the console on my mobile while starting a video on my Shield TV. There is nothing in the console that could be a hint to a server-side issue, as far as I can tell. It just says that my Shield started a video stream and after some seconds, it throws a time-out exception because the Shield app crashed and isn’t responding anymore.

Finally, I reproduced this on my mobile as I’m pretty sure it’s a client bug. I exported its log and had a look. There seems to be an IndexOutOfBoundsException thrown by the ExoPlayer. I guess it’s trying to select a subtitle from an array by a wrong index. It’s at “02-09 21:30:29.295” in “com.plexapp.android 2021-02-09 21-31.log” in the “plex-log-Kitt3120.zip” file.

The funny thing is that the latest Plex update for Android claims to fix exactly this problem: Screenshot of Google Play Changelog on imgur. I am on that version but the bug still persists.

I hope I was able to contribute in fixing this problem.
Keep up the good work! Plex is awesome and was incredibly useful for my whole family in quarantine and before.

  1. Clear the android cache (don’t know what / why – just what I’m told)
  2. There were issues 8.12.2 and updates being rolled out now
1 Like

Hey,

thanks for the quick reply.
Clearing the cache sadly didn’t fix it. I think the update you are talking about is version 8.12.4.22902 (97c4eff). It’s the version I mentioned at the end (Screenshot). The version was supposed to fix the bug and I am on that version, but it is still happening.

I will ask the android team when they some back online (different timezone).

When the player looks like it’s calling for the wrong index, and then PMS complains, I’m very much at a loss since I’m on the server (OS / distro side really) of the house.

1 Like

Thank you :slight_smile:

Server Version#: 1.21.3.4014 on FreeNAS (FreeBSD)
Player Version#: 8.12.4.22902 (97c4e5ff) (Android) (Oneplus 6)

I am having the same problem with the android app. Whenever I am trying to watch a specific show in my library the app will crash. The app crashes instantly when I press the play button.

This problem only seems to appear when I am using the android app, and not when using the desktop app or when using plex through the web.

The problem begun to appear for me yesterday, when I tried to view the show with an SRT subtitle that was converted from an ASS subtitle. Today I tried to use the ASS subtitle and it worked. I also confirmed that it was played with direct play and not being burnt in. But after a few hours the problem also appeard when using ASS subtitles.

I have tried reinstalling the app multiple times, but it does not seem to help.

Yup, sounds like the same problem to me. You could also turn on logging and share your server’s and app’s logs, if you want. Maybe the devs can see if it’s the same error. Or maybe it’s even a different one but they are still connected in a way, then they can fix both. For now, I recommend you to just set your subtitle settings to always burn them in. That’s the only workaround for me to watch my subtitle content atm.

Server Version#: 1.21.3.4021 on Synology NAS ( DSM 6.2.3-25426 Update 3)Plex Media Server Logs_2021-02-16_10-21-09.zip (3.5 MB)
Player Version#: 8.12.4.22902 (97c4e5ff) (Android TV) (Firmware v6.4960)android tv logging.zip (115.4 KB)
I’m also getting the same issue. I can’t play files that worked a week ago with external ssa subtitles.

1 Like

Hey, do you have any news from the Android team? :slight_smile:

Do you have access (signed up) for the beta ?

I have 8.13.1.23036

I signed up for the beta now. Idk why I have not done that already, I am on the beta of almost any app I have lol.

My version is also 8.13.1.23036 (f1e7d9a8) now and it does not crash anymore on this version. Seems like the bug is fixed and the fix has to arrive in the stable version of the app now.
I can disable subtitle burn-in again finally, awesome! :smiley:

Edit: Updated the App on my Shield TV to the beta version now too, and it also works as it should again.

I’ve updated to 8.13.1.23036 (f1e7d9a8) but am still having issues. Have cleared cache as suggested but problem persists.

Have I missed something? Do I still need the beta version?

That’s weird. You should post your logs, so the devs can investigate the issue. Maybe there’s more to it than the part they fixed.

Same crash situation with some ssa subtitles


03-06 23:31:45.170  i: Hello, Plex for Android world (debug: false)!
03-06 23:31:45.171  i: App version: 8.13.2.23227 (819309488)
03-06 23:31:45.172  i: Nano server version: null
03-06 23:31:45.175  i: Manufacturer: Sony  Device: BRAVIA_UR1_4K  Model: BRAVIA 4K UR1  Product: BRAVIA_UR1_4K_CN  Version: 9
03-06 23:31:45.209  i: Screen size: Large Screen density: XHigh Resolution: 1920x1080 DPI: 320 Touchscreen: false  Marketplace: com.android.packageinstaller  Architecture: armeabi-v7a
03-06 23:31:45.233  i: [BootBehaviour][Background] Network behaviour took 0ms to execute on the background thread.
03-06 23:31:45.242  i: [BootBehaviour][Background] Metrics behaviour took 5ms to execute on the background thread.
03-06 23:31:45.252  i: [MetricsSender] Metrics host is not available so we need to fetch the privacy map.
03-06 23:31:45.253  i: Fetching [method:GET] https://plex.tv/api/v2/user/privacy
03-06 23:31:45.279  i: [BootBehaviour][Background] Preferences behaviour took 58ms to execute on the background thread.
03-06 23:31:45.292  i: [BootBehaviour][Foreground] Sentry behaviour took 0ms to execute on the foreground thread.
03-06 23:31:45.294  i: [BootBehaviour][Foreground] Network behaviour took 0ms to execute on the foreground thread.
03-06 23:31:45.296  i: [BootBehaviour][Foreground] Metrics behaviour took 0ms to execute on the foreground thread.
03-06 23:31:45.299  i: [BootBehaviour][Foreground] Preferences behaviour took 0ms to execute on the foreground thread.
03-06 23:31:45.302  i: [BootBehaviour][Foreground] Application behaviour took 0ms to execute on the foreground thread.
03-06 23:31:45.334  i: [ApplicationBehaviourManager] Version code is 819309488.
03-06 23:31:45.339  i: [ApplicationBehaviourManager] Previous version was 819309488.
03-06 23:31:45.356  i: [BootBehaviour][Background] Application behaviour took 76ms to execute on the background thread.
03-06 23:31:45.359  i: [EventSource (PlexTV)] Attempting to connect to plex.tv (user: 7765722)
03-06 23:31:45.374  i: [BootBehaviour][Background] Sentry behaviour took 151ms to execute on the background thread.
03-06 23:31:45.378  i: [BootManager] Took 165ms to complete all 5 boot tasks.
03-06 23:31:45.383  i: [ApplicationInitialisationTask] Starting an initialisation task (First: true, User Changed: false, Network Changed: false)
03-06 23:31:45.385  i: [UserApiClient] Refreshing account...
03-06 23:31:45.387  i: Fetching [method:GET] https://plex.tv/api/v2/user?includeProviders=1&includeSubscriptions=1&X-Plex-Token=...yJSw
03-06 23:31:46.068  i: [Metrics] Correctly fetched privacy map from plex.tv.
03-06 23:31:46.076  i: [EventSource (PlexTV)] Attempting to connect (user: 7765722)
03-06 23:31:46.081  i: [Metrics] Correctly fetched privacy map from plex.tv.
03-06 23:31:46.399  i: [Metrics] Correctly fetched privacy map from plex.tv.
03-06 23:31:46.679  i: [MyPlexRequest] User hasn't changed.
03-06 23:31:46.706  i: Fetching [method:GET] https://plex.tv/api/v2/home/users?X-Plex-Token=...yJSw
03-06 23:31:46.948  i: [SplashActivity] The animation finished before the BootManager
03-06 23:31:47.058  i: [OneApp] Removing entitlement: subscription.
03-06 23:31:47.060  i: Fetching [method:GET] https://plex.tv/api/android/profile?X-Plex-Token=...yJSw
03-06 23:31:47.143  e: [EventSource (PlexTV)] Error detected: null.
03-06 23:31:47.359  e: [AndroidProfile] Error parsing Android profile returned by MyPlex.
03-06 23:31:47.365  e: [AndroidProfile] Error fetching Android profile from MyPlex.
03-06 23:31:47.367  e: An exception occurred: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
 at [Source: (String)""; line: 1, column: 0]
03-06 23:31:47.368  e: Stacktrace: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
 at [Source: (String)""; line: 1, column: 0]
	at com.fasterxml.jackson.databind.ObjectMapper._initForReading(SourceFile:4)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(SourceFile:1)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(SourceFile:2)
	at com.plexapp.plex.net.e7.b.a(SourceFile:2)
	at com.plexapp.plex.net.e7.b.d(SourceFile:3)
	at com.plexapp.plex.net.z6.q(SourceFile:31)
	at com.plexapp.plex.net.z6.n(SourceFile:8)
	at com.plexapp.plex.net.z6.o(SourceFile:1)
	at com.plexapp.plex.net.y6.A(SourceFile:5)
	at com.plexapp.plex.application.o0.l(SourceFile:7)
	at com.plexapp.plex.application.o0.c(SourceFile:1)
	at com.plexapp.plex.application.o0$e.invokeSuspend(SourceFile:12)
	at com.plexapp.plex.application.o0$e.invoke(Unknown Source:10)
	at kotlinx.coroutines.b3.b.c(SourceFile:2)
	at kotlinx.coroutines.j.e(SourceFile:9)
	at kotlinx.coroutines.h.g(SourceFile:1)
	at com.plexapp.plex.application.o0.o(SourceFile:1)
	at com.plexapp.plex.application.r0$e.invokeSuspend(SourceFile:17)
	at kotlin.x.k.a.a.resumeWith(SourceFile:3)
	at kotlinx.coroutines.x2.F0(SourceFile:4)
	at kotlinx.coroutines.a.resumeWith(SourceFile:3)
	at kotlin.x.k.a.a.resumeWith(SourceFile:10)
	at kotlinx.coroutines.y0.run(SourceFile:19)
	at kotlinx.coroutines.c3.b.o(SourceFile:1)
	at kotlinx.coroutines.c3.b$a.c(SourceFile:4)
	at kotlinx.coroutines.c3.b$a.m(SourceFile:4)
	at kotlinx.coroutines.c3.b$a.run(SourceFile:1)

1 Like

I’m getting the exact same logs as Jeffery when trying to play External SSA subs in the Android app. My app is on the latest version (8.13.2.23227). Please fix this, as it’s blocking me from being able to use Direct Play on Android.

I’m having the same issue. Just tried using beta version of both PMS and Plex app in Shield. This issue remains.

I am now confident that (at least for me) the problem came from external .ass subtitles. Having .ass subtitles would make my TV Plex app restart no matter what, whereas having external .ssa subtitles would only make TV Plex app restart when playing with said .ssa subtitles (it can play normally when using external .srt subtitles even there are also external .ssa subtitles).

Also, I’ve discovered that whole embedding .ass subtitles into videos can allow TV Plex app to play the videos successfully, it would messes up the order of other existing subtitles. For example, a video with an embedded English .srt subtitle and 2 embedded Chinese subtitles (.srt and .ass) would have no problem playing when using the .ass subtitle, but would play with an English/Chinese dual language .srt subtitles that is seemingly downloaded from OpenSubtitles on the fly.

It would be massively appreciated if this issue can be fixed…

Can you provide me the latest logs from the Android app after reproducing the issue? Can you also PM me a copy of the SSA file causing the issue.

It’s happening the same to me, here is the log:

https://filebin.net/h3dte36rkr9jqmiy

On a XIAOMI 9T PRO, android 11.

It only happens with .ass subs, but I don’t know where to get the sub download from plex :confused:

Been dealing with the same thing with these external subtitles, including ones that I have had for ages and have worked fine in the past. For the past few weeks the client immediately crashes when trying to play, right to the on-boot Plex logo and then back to home screen. If I play without the subtitles enabled, it’s fine. If I then enable them again while watching, instant crash. Something is definitely wrong.

Attempted on both Shield and Sony X90H, both Android. It’s been killing me to have to disable subtitles for such a large portion of the content I watch.