Thumbnails fail to load, but only on certain android clients

Server Version#: 1.41.4.9463
Player Version#: 10.26.0.2578 (6cc7ea1a)
Player Devices: Pixel 8, Chromecast with Google TV
Server Device: Synology DS1520+ NAS, Docker

In the past week or two I’ve run into an odd issue where plex item thumbnails are failing to load, but only for two specific Android clients on two different devices, both using the standard android ‘Plex’ app with the same version (listed above); a Pixel 8 and a Chromecast with Google TV (I think the 4k model, but not sure about that).

Thumbnails display properly on these two devices for other Plex servers I have access to in the Plex Home group I’m a part of. They also display properly in other clients I’ve tried, like the web client and, interestingly, the new ‘Plex Preview’ Android app. There are no other issues with these clients, I see all the items in the server and can watch them on the clients without issue.

The fact that I can see thumbnails in the Android Plex Preview app but not in Plex (classic) app provided a basis for comparison and helped narrow down to a specific request query parameter that’s different between the two which is likely causing problems for both devices, but I’m not sure how to fix it.

The key difference here seems to be a loopback ip:port prefix on the url request param for the GET /photo/:/transcode request, which is causing the thumbnail request to fail when made from the ‘classic’ Plex app vs the ‘preview’ plex app:

  • preview (working): 10.0.0.73 GET /photo/:/transcode?...&url=/library/metadata/6874/thumb/1739809169
  • classic (failing): 10.0.0.73 GET /photo/:/transcode?...&url=http://127.0.0.1:32401/library/metadata/5491/thumb/1739781243

The server is hosted on 10.0.0.10:32401 so if I visit either of those urls directly and substitute the correct IP/port, I get the expected thumbnail image without any issue.

:question: why is http://127.0.0.1:32401 being prepended to that request param on these clients, and how do I update the configuration to remove it. I’ve tried clearing caches, signing out and back in, bouncing the plex server, deleting and reinstalling the apps, etc… with no luck. I assume there’s a database entry that might be able to be manually updated, but I haven’t found it yet in a database dump while just browsing around with a sqlite viewer.

There was also an app version update on Feb 3rd that’s at least in the ballpark of when the issue cropped up: Plex for Android - #524 by PlexAndroidReleaser so I suppose it’s possible that a bug was introduced that is causing this, but I’m not sure how to rollback in order to verify, if that’s even possible.

Any help is appreciated!

Log snippets with more detail for each of those requests:

// 'Plex Preview' app, working thumbnails
// 10.0.0.73 GET /photo/:/transcode?...&url=/library/metadata/6874/thumb/1739809169

Request: [10.0.0.73:35078 (Allowed Network (WAN))] GET /photo/:/transcode?width=360&height=360&minSize=1&format=jpeg&url=%2Flibrary%2Fmetadata%2F6874%2Fthumb%2F1739809169 (24 live) #5104b TLS GZIP Signed-in Token (<my-username>) (Pixel 8)
[Req#5104b/PhotoTranscoder] Request for url [/library/metadata/6874/thumb/1739809169] (is local: 1 upscaled: 0)
[Req#5104b/PhotoTranscoder/Req#5106d] It took 0.000000 ms to retrieve 232 items.
[Req#5104b/PhotoTranscoder/Req#5106d] Calculated media file path for path [metadata://posters/cde1adacc778cf36eb3a3cf49913397e5233f2b9]: ["/app/config/Plex Media Server/Metadata/TV Shows/9/d3edfaeab36562e0217392269b998f9c418c826.bundle/Contents/_combined/posters/cde1adacc778cf36eb3a3cf49913397e5233f2b9"]
[Req#5104b/PhotoTranscoder] Calling back into ourselves for photo to transcode, optimizing the process (status: -1)
[Req#5104b/PhotoTranscoder] Photo cache obtained 288210 bytes from /library/metadata/6874/thumb/1739809169
[Req#5104b/PhotoTranscoder] Created thumbnail of size 360x529, has pixels: 1
Completed: [10.0.0.73:35078] 200 GET /photo/:/transcode?width=360&height=360&minSize=1&format=jpeg&url=%2Flibrary%2Fmetadata%2F6874%2Fthumb%2F1739809169 (24 live) #5104b TLS GZIP 121ms 37533 bytes (pipelined: 2)


// 'Plex' (classic) app, non-working thumbnails
// 10.0.0.73 GET /photo/:/transcode?...&url=http://127.0.0.1:32401/library/metadata/5491/thumb/1739781243

Request: [10.0.0.73:42668 (WAN)] GET /photo/:/transcode?width=288&url=http%3A%2F%2F127.0.0.1%3A32401%2Flibrary%2Fmetadata%2F5491%2Fthumb%2F1739781243&height=433 (20 live) #4cc0e TLS GZIP Signed-in Token (<my-username>) (Pixel 8)
[Req#4cc0e/PhotoTranscoder] Request for url [http://127.0.0.1:32401/library/metadata/5491/thumb/1739781243] (is local: 0 upscaled: 0)
[Req#4cc0e/PhotoTranscoder/HCl#b73] HTTP requesting GET http://127.0.0.1:32401/library/metadata/5491/thumb/1739781243
Request: [127.0.0.1:33864 (WAN)] GET /library/metadata/5491/thumb/1739781243 (22 live) #4cc15 GZIP Signed-in
Completed: [127.0.0.1:33864] 401 GET /library/metadata/5491/thumb/1739781243 (21 live) #4cc15 GZIP 0ms 357 bytes
[HttpClient/HCl#b73] HTTP/1.1 (0.0s) 401 response from GET http://127.0.0.1:32401/library/metadata/5491/thumb/1739781243
Completed: [10.0.0.73:42668] 404 GET /photo/:/transcode?width=288&url=http%3A%2F%2F127.0.0.1%3A32401%2Flibrary%2Fmetadata%2F5491%2Fthumb%2F1739781243&height=433 (20 live) #4cc0e TLS GZIP 2ms 379 bytes (pipelined: 2)
1 Like

having this exact same issue.
I have an existing Plex server on a windows machine that I am in the process of migrating to a linux setup and none of my Thumbnails are appearing on my remote devices (2 x Android shields and 1 Pixel 6 pro) that I’ve tested on.

Like OP I downloaded the Plex Preview app just to test and the posters load fine for the same library on the same device.

Server Version#: Version 1.41.5.9522
Player Version#: 10.26.0.2578 (6cc7ea1a)
Player Devices: Pixel 6 Pro
Server Device: Promox Linux Ubuntu LXC, Docker

adding in my information for reference

From the logs:

Feb 28, 2025 10:21:34.064 [131384152697656] DEBUG - Request: [192.168.90.1:53082 (WAN)] GET /photo/:/transcode?width=385&url=http%3A%2F%2F127.0.0.1%3A32401%2Flibrary%2Fmetadata%2F850%2Fthumb%2F1740672748&height=577 (14 live) #a310 TLS GZIP Signed-in Token (my username) (Pixel 6 Pro)

Feb 28, 2025 10:21:34.064 [131384123337528] DEBUG - [Req#a327/PhotoTranscoder] Request for url [http://127.0.0.1:32401/library/metadata/1384/thumb/1740672770] (is local: 0 upscaled: 0)

Feb 28, 2025 10:21:34.064 [131384152697656] DEBUG - [Req#a310/PhotoTranscoder] Request for url [http://127.0.0.1:32401/library/metadata/850/thumb/1740672748] (is local: 0 upscaled: 0)

Feb 28, 2025 10:21:34.064 [131384123337528] DEBUG - [Req#a327/PhotoTranscoder/HCl#f1] HTTP requesting GET http://127.0.0.1:32401/library/metadata/1384/thumb/1740672770

Feb 28, 2025 10:21:34.064 [131384152697656] DEBUG - [Req#a310/PhotoTranscoder/HCl#f2] HTTP requesting GET http://127.0.0.1:32401/library/metadata/850/thumb/1740672748

Feb 28, 2025 10:21:34.064 [131384198835000] DEBUG - Request: [127.0.0.1:46804 (WAN)] GET /library/metadata/1384/thumb/1740672770 (15 live) #a325 GZIP Signed-in

Feb 28, 2025 10:21:34.064 [131384203029304] DEBUG - Request: [127.0.0.1:46820 (WAN)] GET /library/metadata/850/thumb/1740672748 (16 live) #a328 GZIP Signed-in

Feb 28, 2025 10:21:34.064 [131384198835000] DEBUG - Completed: [127.0.0.1:46804] 401 GET /library/metadata/1384/thumb/1740672770 (16 live) #a325 GZIP 0ms 357 bytes

do we need to keep posting here to get a response?

bumping to try get a response

bump for a response

Sometime in the past few weeks I managed to get this fixed. Unfortunately I had poked at several different things that day and I didn’t take good notes so I’m not 100% sure what the key changes were.

Since that’s not useful at all, here are a couple settings that might have had an impact and what they are currently set to for me:

  • Android Plex app

    • settings → sharing
      • advertise as player - unchecked
      • advertise as server - unchecked
      • network discover - unchecked
    • settings → advanced → manual connections
      • enable manual connections - enabled
      • connection 1: IP 10.0.0.10 Port 32401
        • this is the LAN IP and Port of my the plex server running on my NAS
      • connection 2: tailscale IP for my NAS, same port
        • this is almost certainly unrelated and only relevant for people running tailscale with their plex server machine on the tailnet (incidental plug for tailscale, which is awesome)
      • allow insecure connections: always
        • on the same network is better, but worth playing with this setting to see if it makes any difference… possibly in conjunction with the server setting custom server access urls
  • Chromecast / Google TV

    • likely same settings, but can’t double check at the moment
  • Plex Server

    • settings → network
      • enable local network discovery (GDM) - checked
      • LAN networks: 10.0.0.0/24,100.64.0.0/10
        • these are my LAN subnet and tailscale subnet ranges, respectively
        • most users likely only want the LAN subnet, which is almost certainly different than mine! many consumer routers probably default to something like 192.168.0.0/24 but your mileage may vary, refer to your router config for details
      • treat WAN IP as LAN bandwidth: checked
        • also probably unrelated
      • custom server access URLs: http://10.0.0.10:32401
        • again, this is my LAN IP and port for my plex server it won’t be the same for other people, but since I’m mostly using plex at home, having this and the manual connections setup in the apps is very likely involved in these network requests
      • list of IP addresses, networks allowed without auth: 10.0.0.0/24,100.64.0.0/10
        • this might be involved too, since this is saying “allow systems on my home network, or on my tailscale tailnet to access without auth”, again other peoples’ IP ranges will be different and tailscale won’t apply to most people

Ultimately this ended up being something that I was able to resolve by poking at settings until I hit whatever magical combination unjanked the issue.

:red_exclamation_mark: For the Plex team, this does still seem like a bug to me since my original configuration worked in the preview app but not in the classic app. I was very happy to help troubleshoot this further, but frankly it’s discouraging to take the time to gather that much technical detail and specific logs pointing at a very specific technical discrepency only to get zero response for over a month.

p.s. @sean1604 I hope this is helpful, good luck!
p.p.s. removed ‘solved’ on 2025-08-09 because it’s happening again on a newer client.

followed your settings @bplo however still getting the same issue. The output from the log does look a little different but is still showing as a non local/WAN connection and on 127.0.0.1 instead of local sadly:

Mar 27, 2025 13:54:41.261 [123855509138232] DEBUG - Request: [192.168.1.108:43174 (Allowed Network (WAN))] GET /photo/:/transcode?width=385&url=http%3A%2F%2F127.0.0.1%3A32401%2Flibrary%2Fmetadata%2F2007%2Fthumb%2F1740674738&height=577 (20 live) #3de84 TLS GZIP Signed-in Token (my username) (Pixel 6 Pro)

Mar 27, 2025 13:54:41.261 [123855509138232] DEBUG - [Req#3de84/PhotoTranscoder] Request for url [http://127.0.0.1:32401/library/metadata/2007/thumb/1740674738] (is local: 0 upscaled: 0)

I woke up to find this issue today, no change overnight I’m aware of but now no thumbnails for media or, say, actors.

My setup is Plex hosted from Win 11 PC, home network connected to Hisense VIDAA OS.

Posters etc. load in Win 11, and on iOS devices.

Bumping as still broke, any update to this?

Bump. No images except for logos and the background images are loading on my Android 9 phone. Using the latest Plex app. Could this please be addressed?

Hisense/Vidaa app remains broken - even more so with video now going “full screen” removing letterboxing and stretching to fit.

…and it’s back!

Server Version#: 1.42.1.10054
Player Version#: 10.30.2.3548 (ba954fe0)
Player Devices: Chromecast with Google TV
Server Device: Synology DS1520+ NAS, Docker

Only on Google Home, same exact situation with failing thumbnail requests due to a bad query param pointing to 127.0.0.1 with no changes to the server config.

eg. 404 GET /photo/:/transcode?width=360&url=http%3A%2F%2F127.0.0.1%3A32401%2Flibrary%2Fmetadata%2F10100%2Fthumb%2F1753004100&height=360&quality=90 (15 live) #58a TLS GZIP 4ms 379 bytes (pipelined: 18)

Tried all the typical stuff, restarting server, restarting client, reinstalling client, etc… /photo/:/transcode requests consistently result in 404 because of the incorrect url=http://127.0.0.1:32401 prefix.

Edit: interesting, last time adding http://10.0.0.10:32401 to the ‘custom server access urls’ list seemed like it made a difference, this time removing it did the trick :person_facepalming: (also rolled back to server version 1.41.9.9961, but that by itself didn’t make a difference, thumbnails only returned on Google Home after removing the url above from settings, saving, and force stopping / restarting the Plex app on Google Home). So… solved again? I guess?

Been having the same issue.

Used to have the same issue on all Android clients, but this seems to have changed recently.
I no longer have the issue on Plex for Android (Mobile) version 2025.22.0.

I do still have the issue on Plex for Android (Android TV) version 10.30.2.3548.

Might I ask if you are using the official Docker image (plexinc/pms-docker) or the LSIO image (linuxserver/plex) ?

EDIT: I, uh, fixed my issue by:

  • Migrating from lscr.io/linuxserver/plex:1.41.8 to the official plexinc/pms-docker:1.42.1.10060-4e8b05daf (I could reuse the Docker mounts as-is, but be careful about file ownership - PUID/PGID become PLEX_UID/PLEX_GID)
  • Removing settings in Server Settings/Settings/Network: “Custom server access URLs” and “List of IP addresses and networks that are allowed without auth”
  • Switching “Client Network” to “IPv4 Only”
  • On Plex for Android TV, going to the Android app settings, force shutdown, clear all app data (not just cache), then reopening the app and logging back in.

I didn’t check after every step, so I am unsure where the issue was in all of this. Might have been the image, the version or the settings, might not.