4K high-bitrate videos stopped playing after Plex or Android TV update

After a recent update — either Plex client or Android TV — videos with high bitrates (45+ Mbps) stopped playing. Doesn’t matter if it’s H.264 or H.265. The loading circle spins endlessly, and playback never starts. It doesn’t even register as “started” in my watch history, like I never tried to play it.

Plex works fine through Kodi in this TV, so it looks like the issue is specific to the official Plex Android TV client.

All hardware is unchanged (NAS, WiFi, etc.).
All other devices in the house (iPhone, iPad, PC) play the same files without issues.

Details:

  • Plex client version: 10.30.6.4151

  • TV: Sony Bravia XR X90L (4K VH22, Android TV 12, stt2.230505.001.s66681001)

Any ideas? Could this be a decoding issue after the latest update?

Client LOGS:

10-27 09:15:03.908  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
10-27 09:15:03.911  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
10-27 09:15:03.923  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
10-27 09:15:03.932  i: [ChaptersSheetHud] Found 0 chapters.
10-27 09:15:03.947  i: [MenuSheetHud] Item changed (and fetched), invalidating settings...
10-27 09:15:04.073  i: [Player][View] Layout has been measured with a size of 1920 x 1080 (1920 x 1080).
10-27 09:15:04.074  i: [Player][DimensionsLayout] Resizing: 1920 x 1080
10-27 09:15:04.087  i: [ASS][Renderer] Surface has been created, connecting to renderer.
10-27 09:15:04.097  i: [ExoPlayer][EventLogger] surfaceSize [eventTime=0.41, mediaPos=0.00, window=0, period=0, 1920, 1080]
10-27 09:15:04.100  i: [ASS][Renderer] Attempting to start renderer from setSurface.
10-27 09:15:04.101  w: [ASS][Renderer] Missing video size, can't start renderer yet.
10-27 09:15:04.106  i: [SystemUIBehaviour] Hiding the system user-interface.
10-27 09:15:40.349  i: [InteractionBehaviour] Woke up, reason: Interface visibility has been toggled..
10-27 09:15:40.350  i: [SystemUIBehaviour] Showing the system user-interface.
10-27 09:15:40.351  i: [ASS][Renderer] Updating style override for track.
10-27 09:15:41.429  i: [InteractionBehaviour] Slept, reason: Back key pressed whilst awake.
10-27 09:15:41.431  i: [SystemUIBehaviour] Hiding the system user-interface.
10-27 09:15:41.433  i: [ASS][Renderer] Updating style override for track.
10-27 09:15:42.251  i: [Player] Engine being destroyed due to player deconstruction.
10-27 09:15:42.252  i: [Player] Starting to clear huds on player destroy. Activity finishing: false, should finish activity: true
10-27 09:15:42.252  i: [MemoryOptimisationBehaviour] Expanding memory cache.
10-27 09:15:42.253  i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
10-27 09:15:42.253  i: [AudioFocusBehaviour] Behaviour being destroyed, giving up audio focus
10-27 09:15:42.256  i: [ExoPlayerEngine] Releasing media source due to engine destruction.
10-27 09:15:42.257  i: [LoadControl] Setting buffer size to 73.19 MB / 0 seconds.
10-27 09:15:42.262  i: [ExoPlayer][EventLogger] state [eventTime=38.58, mediaPos=0.00, window=0, period=0, IDLE]
10-27 09:15:42.264  i: [ExoPlayer][ExoPlayerImpl] Release bc82750 [AndroidXMedia3/1.1.0] [BRAVIA_VH22, BRAVIA 4K VH22, Sony, 31] [media3.common, media3.exoplayer, media3.decoder]
10-27 09:15:42.268  i: [DisplayBehaviour] Reverting back to the original display mode.
10-27 09:15:42.270  i: [DisplayBehaviour] Current Mode ID: 1 / {id=1, width=3840, height=2160, fps=60.000004, alternativeRefreshRates=[]}
10-27 09:15:42.273  i: [DisplayBehaviour] Mode is already set to our best mode of 3840x2160 @ 60.0000Hz (1).
10-27 09:15:42.274  i: [LoadControl] Setting buffer size to 73.19 MB / 0 seconds.
10-27 09:15:42.275  i: [MediaSessionBehaviour] Releasing MediaSessionHelper
10-27 09:15:42.276  i: [MediaSessionHelper] Releasing media session with tag: video
10-27 09:15:42.285  i: [PlayerService] Terminating service from stop request.
10-27 09:15:42.305  i: [PlayerService] Service been destroyed.
10-27 09:15:42.325  i: [ActivityBackgroundBehaviour] Canceling Playback: Starting new playback from onStart.
10-27 09:15:42.328  i: Resuming HomeActivityTV.
10-27 09:15:42.813  i: [ASS][Renderer] Surface has been destroyed, disconnecting.
10-27 09:15:42.814  w: [ExoPlayer][ExoPlayerImplInternal] Ignoring messages sent after release.
10-27 09:15:42.834  i: [Player] Starting to clear huds on view detach. Activity finishing: null
10-27 09:15:45.412  i: Creating SettingsActivity.
10-27 09:15:45.413  i: [Activity] Resuming the application, attempting to download item and children.
10-27 09:15:45.415  i: [Boot] SettingsActivity took 2ms to run create behaviours.
10-27 09:15:45.479  i: [Boot] g took 0ms to run create behaviours.
10-27 09:15:45.484  i: [ActivityBackgroundBehaviour] Canceling Playback: Starting new playback from onStart.
10-27 09:15:45.488  i: Resuming SettingsActivity.
10-27 09:15:45.492  i: [Billing] Received request 'Subscription query'.
10-27 09:15:45.685  i: [Billing] Creating client.
10-27 09:15:45.687  i: [Billing] Connecting to billing service.
10-27 09:15:45.729  i: [Billing] Billing setup finished. Result: 0 | Client ready: true.
10-27 09:15:45.730  i: [Billing] Querying current product plex_pass_lifetime_subscription_v1.
10-27 09:15:45.731  i: [Billing] Invoking querySkuDetailsAsync. SKU: plex_pass_lifetime_subscription_v1 | Type: inapp.
10-27 09:15:45.744  i: [Billing] Got response from querySkuDetailsAsync. Code: 0 | List: [{Sku: plex_pass_lifetime_subscription_v1 | Price: 1.499,99В PLN | Price amount micros: 1499990000 | Price currency code: PLN}].
10-27 09:15:45.748  i: [Billing] Got response from queryPurchases. Code: 0 | List: [].
10-27 09:15:45.749  i: [Billing] SKU plex_pass_lifetime_subscription_v1 not found in response from queryPurchases().
10-27 09:15:45.749  i: [Billing] There are no old products to check.
10-27 09:15:45.750  i: [Billing] Subscription query completed successfully. Result: ProductQueryResult{currentProductInfo=ProductInfo{sku=plex_pass_lifetime_subscription_v1, term=lifetime, usdPrice=149.99, formattedPrice=1.499,99В PLN, price=1499.99, currency=PLN, skuDetails=SkuDetails: {"productId":"plex_pass_lifetime_subscription_v1","type":"inapp","title":"Plex Pass Lifetime Subscription (Plex: Stream Movies & TV)","name":"Plex Pass Lifetime Subscription","iconUrl":"https:\/\/lh3.googleusercontent.com\/slZYN_wnlAZ4BmyTZZakwfwAGm8JE5btL7u7AifhqCtUuxhtVVxQ1mcgpGOYC7MsAaU","description":"A subscription gives you exclusive premium features and early access to new \nones","price":"1.499,99В PLN","price_amount_micros":1499990000,"price_currency_code":"PLN","skuDetailsToken"...ed}.
10-27 09:15:45.750  i: [Billing] Received request 'Subscription query'.
10-27 09:15:45.751  i: [Billing] Already connected to billing service.
10-27 09:15:45.751  i: [Billing] Querying current product plex_pass_yearly_subscription_v1.
10-27 09:15:45.751  i: [Billing] Invoking querySkuDetailsAsync. SKU: plex_pass_yearly_subscription_v1 | Type: subs.
10-27 09:15:45.761  i: [Billing] Got response from querySkuDetailsAsync. Code: 0 | List: [{Sku: plex_pass_yearly_subscription_v1 | Price: 319,99В PLN | Price amount micros: 319990000 | Price currency code: PLN}].
10-27 09:15:45.765  i: [Billing] Got response from queryPurchases. Code: 0 | List: [].
10-27 09:15:45.765  i: [Billing] SKU plex_pass_yearly_subscription_v1 not found in response from queryPurchases().
10-27 09:15:45.766  i: [Billing] There are no old products to check.
10-27 09:15:45.766  i: [Billing] Subscription query completed successfully. Result: ProductQueryResult{currentProductInfo=ProductInfo{sku=plex_pass_yearly_subscription_v1, term=yearly, usdPrice=39.99, formattedPrice=319,99В PLN, price=319.99, currency=PLN, skuDetails=SkuDetails: {"productId":"plex_pass_yearly_subscription_v1","type":"subs","title":"Plex Pass Yearly Subscription (Plex: Stream Movies & TV)","name":"Plex Pass Yearly Subscription","iconUrl":"https:\/\/lh3.googleusercontent.com\/slZYN_wnlAZ4BmyTZZakwfwAGm8JE5btL7u7AifhqCtUuxhtVVxQ1mcgpGOYC7MsAaU","description":"A subscription gives you exclusive premium features and early access to new \nones","price":"319,99В PLN","price_amount_micros":319990000,"price_currency_code":"PLN","skuDetailsToken"...ed}.
10-27 09:15:45.766  i: [Billing] Received request 'Subscription query'.
10-27 09:15:45.766  i: [Billing] Already connected to billing service.
10-27 09:15:45.767  i: [Billing] Querying current product plex_pass_monthly_subscription_v1.
10-27 09:15:45.767  i: [Billing] Invoking querySkuDetailsAsync. SKU: plex_pass_monthly_subscription_v1 | Type: subs.
10-27 09:15:45.774  i: [Billing] Got response from querySkuDetailsAsync. Code: 0 | List: [{Sku: plex_pass_monthly_subscription_v1 | Price: 31,99В PLN | Price amount micros: 31990000 | Price currency code: PLN}].
10-27 09:15:45.779  i: [Billing] Got response from queryPurchases. Code: 0 | List: [].
10-27 09:15:45.780  i: [Billing] SKU plex_pass_monthly_subscription_v1 not found in response from queryPurchases().
10-27 09:15:45.780  i: [Billing] There are no old products to check.
10-27 09:15:45.781  i: [Billing] Subscription query completed successfully. Result: ProductQueryResult{currentProductInfo=ProductInfo{sku=plex_pass_monthly_subscription_v1, term=monthly, usdPrice=4.99, formattedPrice=31,99В PLN, price=31.99, currency=PLN, skuDetails=SkuDetails: {"productId":"plex_pass_monthly_subscription_v1","type":"subs","title":"Plex Pass Monthly Subscription (Plex: Stream Movies & TV)","name":"Plex Pass Monthly Subscription","iconUrl":"https:\/\/lh3.googleusercontent.com\/slZYN_wnlAZ4BmyTZZakwfwAGm8JE5btL7u7AifhqCtUuxhtVVxQ1mcgpGOYC7MsAaU","description":"A subscription gives you exclusive premium features and early access to new \nones","price":"31,99В PLN","price_amount_micros":31990000,"price_currency_code":"PLN","skuDetailsToken"...ed}.
10-27 09:15:45.781  i: [Home] Showing 'subscribe' item because billing is available and user is not subscribed.
10-27 09:15:46.130  i: [ActivityBackgroundBehaviour] Canceling Playback: Stopping playback from onStop.
10-27 09:15:55.801  i: [Billing] Destroying background handler after inactivity.
10-27 09:15:55.801  i: [Billing] Ending connection after inactivity.
10-27 09:15:55.802  i: [Billing] Ending connection to billing service.

Server Version#: 1.42.2.10156
Player Version#: 10.30.6.4151

logs from server

Oct 27, 2025 09:15:03.857 DEBUG - Completed: GET /library/metadata/X?includeRelated=1&includeLoudnessRamps=1&includeChapters=1&includeMarkers=1 200
Oct 27, 2025 09:15:04.229 DEBUG - Request: GET /photo/:/transcode?width=128&url=/library/metadata/X/thumb/X&height=128&quality=90
Oct 27, 2025 09:15:04.229 DEBUG - Request for url /library/metadata/X/thumb/X
Oct 27, 2025 09:15:04.229 DEBUG - Content-Length of cached photo is X
Oct 27, 2025 09:15:04.229 DEBUG - Completed: GET /photo/:/transcode?width=128&url=/library/metadata/X/thumb/X&height=128&quality=90 200
Oct 27, 2025 09:15:40.548 DEBUG - Request: GET /photo/:/transcode?width=1040&url=/library/metadata/X/thumb/X&height=1040&quality=90