[BUG] Download errors on Android App

Unable to download anything on Android from QNAP server - tried multiple Android devices.
See “there was an error downloading this file”

QNAP Server Version: 1.30.0.6486
Android App Version: 9.13.1.37459 (39e89c99)

Download from same server using Linux Plex player works fine

logs from server and Android ready to PM a Plex employee - this seems to be a common issue looking at other unresolved threads. Happy to help troubleshoot, it is a key feature that is broken here, seems to be an issue ever since the move from Sync function to downloads.

code from Android app:


01-03 09:39:46.704  i: [DownloadQueueManager] Queue has started
01-03 09:39:46.705  i: [DownloadServiceHandler] New state is Downloading
01-03 09:39:46.708  i: [DownloadQueueManager] Downloading item to path /data/user/0/com.plexapp.android/Plex Media Server/Sync/1/2/.grab/36ce9b0d6e6e3c75357cf797da25b26c7d375b0d-local/Video_File_to_download.mkv
01-03 09:39:46.894  e: [Downloader] Exception downloading /data/user/0/com.plexapp.android/Plex Media Server/Sync/1/2/.grab/36ce9b0d6e6e3c75357cf797da25b26c7d375b0d-local/Video_File_to_download.mkv
01-03 09:39:46.895  i: [DownloadQueueManager] Download failed: 36ce9b0d6e6e3c75357cf797da25b26c7d375b0d
01-03 09:39:46.895  e: An exception occurred: java.io.IOException: Unsuccessful response: 0
01-03 09:39:46.895  e: Stacktrace: java.io.IOException: Unsuccessful response: 0
	at com.plexapp.downloads.m.d(SourceFile:275)
	at com.plexapp.downloads.m.b(Unknown Source:0)
	at com.plexapp.downloads.m$a.invokeSuspend(SourceFile:13)
	at kotlin.coroutines.jvm.internal.a.resumeWith(SourceFile:12)
	at kotlinx.coroutines.b1.run(SourceFile:119)
	at kotlinx.coroutines.internal.n.run(SourceFile:13)
	at kotlinx.coroutines.scheduling.k.run(SourceFile:3)
	at kotlinx.coroutines.scheduling.a.k(SourceFile:1)
	at kotlinx.coroutines.scheduling.a$c.d(SourceFile:15)
	at kotlinx.coroutines.scheduling.a$c.n(SourceFile:29)
	at kotlinx.coroutines.scheduling.a$c.run(Unknown Source:0)

01-03 09:39:46.981  i: Fetching [method:GET] http://127.0.0.1:32500/media/subscriptions?includeStorage=1&includeTarget=1&X-Plex-Account-ID=1&X-Plex-Language=en-gb
01-03 09:39:46.989  i: [HttpServer] /127.0.0.1:35096 - GET /media/subscriptions
01-03 09:39:47.029  i: [EventSource (LocalServer)] Message: {"ActivityNotification":{"event":"started","uuid":"8ae486a3-50e3-402c-991d-2e4295493ba7","Activity":{"uuid":"8ae486a3-50e3-402c-991d-2e4295493ba7","type":"general.bundle.clean","cancellable":false,"userID":1,"title":"Cleaning Bundles","subtitle":"","progress":-1}}}
01-03 09:39:47.030  i: [EventSource (LocalServer)] Message: {"ActivityNotification":{"event":"updated","uuid":"8ae486a3-50e3-402c-991d-2e4295493ba7","Activity":{"uuid":"8ae486a3-50e3-402c-991d-2e4295493ba7","type":"general.bundle.clean","cancellable":false,"userID":1,"title":"Cleaning Bundles","subtitle":"Analyzing media bundles","progress":-1}}}
01-03 09:39:47.031  i: [EventSource (LocalServer)] Message: {"ProgressNotification":{"message":"The cleanup cleaned 0 media bundles."}}
01-03 09:39:47.031  i: [EventSource (LocalServer)] Message: {"ActivityNotification":{"event":"updated","uuid":"8ae486a3-50e3-402c-991d-2e4295493ba7","Activity":{"uuid":"8ae486a3-50e3-402c-991d-2e4295493ba7","type":"general.bundle.clean","cancellable":false,"userID":1,"title":"Cleaning Bundles","subtitle":"Analyzing metadata bundles","progress":-1}}}
01-03 09:39:47.031  i: [EventSource (LocalServer)] Message: {"ProgressNotification":{"message":"The cleanup cleaned 0 metadata bundles."}}
01-03 09:39:47.031  i: [EventSource (LocalServer)] Message: {"ActivityNotification":{"event":"ended","uuid":"8ae486a3-50e3-402c-991d-2e4295493ba7","Activity":{"uuid":"8ae486a3-50e3-402c-991d-2e4295493ba7","type":"general.bundle.clean","cancellable":false,"userID":1,"title":"Cleaning Bundles","subtitle":"Analyzing metadata bundles","progress":100}}}
01-03 09:39:48.894  i: [UserAction] Select menu item: Up.
01-03 09:39:49.901  i: [DownloadQueueManager] Network conditions are fine, download really failed
01-03 09:39:49.903  w: [DownloadQueueManager] Adding 36ce9b0d6e6e3c75357cf797da25b26c7d375b0d to the failed list: Unknown issue occurred.
01-03 09:39:49.905  i: [DownloadQueueManager] Current download queue is empty and there is content that failed
01-03 09:39:49.906  i: [DownloadNotificationManager] Displaying error notification (Some items could not be downloaded).

This has been referred by @ChuckPa to the Plex for Android development team

I would like to eliminate one area
On a PC on your local network (192.168.100.x subnet), could you open a command line window and enter this command

nslookup 192-168-100-4.d889772e5ef141a1a08ec934305c2211.plex.direct

and copy and paste the response you get back here

Just want to check out there is no DNS Binding Protection angle on the problem

What is the make and model of the router?

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
*** Can't find 192-168-100-4.d889772e5ef141a1a08ec934305c2211.plex.direct: No answer

Router is running pfsense firewall software, I can control DNS settings in detail - there is a DNS binding protection feature

https://docs.netgate.com/pfsense/en/latest/services/dns/rebinding.html

However as mentioned the Linux player on the same network has no issues downloading any files, the error is specific to my Android devices

I am aware of that - I just want to establish if our android issue relates to DNS Rebinding Protection

Could you disable DNS Rebinding Protection for the server and let me know if it makes a difference

and repeat the nslookup test

It should not error but give 192.168.100.4 as the resolved IP address for the plex.direct lookup

Ok that seems to have fixed the issue… file has downloaded

I added:

server:
private-domain: "192-168-100-4.d889772e5ef141a1a08ec934305c2211.plex.direct"

to the DNS Resolver Custom Options box in PfSense

Result of nslookup:

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	192-168-100-4.d889772e5ef141a1a08ec934305c2211.plex.direct
Address: 192.168.100.4

Is the plex.direct URL static?

Thanks - it changes if the certificate is changed or the IP Address is changed.

Can you tell me if this has made a difference to the downloads? Wouldnot mind fresh logs from the samsung app and the server again

you already told me !

will PM latest Android logs

IP address will not change, when would a certificate change?

If users set a blanket rule for *.plex.direct to bypass DNS Protection in the DNS resolver do you think that will solve the issue until the Android app is updated?

Looking at your server details on plex.tv, it is showing certificate expiring in April 2023
So it would get replaced sometime before expiry

Yes that should get round the problem

in fact I used “plex.direct” in the config to blanket bypass DNS Rebind protection

so for PfSense I added to the DNS Resolver Custom Options

server:
private-domain: "plex.direct"

To help others, I have had the same errors on Downloading for a while. Finally fixed it today had to install a Fake VPN Service on the tablet (https://play.google.com/store/apps/details?id=com.github.xfalcon.vhosts) and added a Hosts file with the resolving of the ..plex.direct DNS entry to the local address of my Plex Media Server (a Netgear ReadyNAS) Then just need to turn the VPN on when at home or off when I am away to get the files to update.

thanks for the input @streamlines - hopefully we hear from @sa2000 that Plex Android team have a fix planned for this issue to avoid such technical knowledge requirements for average Plex users.

It’s not ideal to blanket allow domains through firewalls and have to use a Fake VPN or similar workaround.

A fix for DNS Rebinding Protection stopping downloads on Android mobile has now been released in Plex for Android version 9.16.0

See Release Notice Plex for Android - #458 by ManuelPG

  • [Mobile] Downloads: downloads would fail if network had DNS Rebinding Protection enabled.

great news, thanks for the fix!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.