I have regular issues with failed downloads from the following feed:
http://www.590klbj.com/_SHARED/Podcasts/public/RSS.aspx?PID=132#
After enough retries, I can eventually get everything as far as I can tell. Is there something about the feed itself that could be causing problems for the app?
Thanks,
Tim
Is it just this feed that is causing problems? If other feeds are working well but this one is problematic, that sounds like something feed specific. We aren't doing anything special to download, it's just an HTTP get like you would on a PC.
I have found downloading over cell network to be pretty unreliable. I can almost never get a download to complete when driving.
Well, I have failures with other feeds too, and maybe this one sticks out because I listen to it the most regularly, but every time there's a major refresh - like when I change the feed settings, or a couple of days go by before I listen again - it takes 3 or 4 times re-downloading them one at a time with 5 retries each before I finally get them all down.
It *seems* worse on the cell network, probably because I listen in my car most of the time, but I have trouble over wifi at home as well.
Thanks for the reply, thought it might be worth posting the feed to see if it was somehow buggy. I sent a note to the webmaster of the site that hosts the content as well just in case.
That's pretty strange because I have had 0 problems downloading over wifi, both with the emulator and the real phone.
Anyone else have problems over Wifi?
I have problems with failed and partial downloads all the time. I presumed it was the host of the podcast, rather than the application. I haven't noticed any difference between wifi or 3g.
I am having problems over WiFi, but it might have something to do with the WiFi implementation itself. For example, say that I'm at home (where I have WiFi). When I press any key to turn on the screen, I sometimes see the 3G/GPRS icon. I then see it connect to the WiFi and the WiFi icon replaces the 3G/GPRS icon. This takes one or 2 seconds. Also, it doesn't ALWAYS happen, it seems to depend on how long the phone has been asleep.
I've set up DoggCatcher to fetch only when on WiFi. Mi theory is that the phone for some reason gets disconnected from the WiFi in the middle of queue processing, and instead of halting the queue, DoggCatcher continues trying and failing all episodes. It would be great to have a screen where we could see the download status for all episodes (perhaps it could be cleared each time it updates, or manually, or by time) and also re-queue them.
Now that I think about it, that's one of the problems I have with DoggCatcher. Ideally I'd like episodes to be downloaded overnight (or at the office) so they are ready for my commute. However, I have to manually queue the episodes (and yes, I have to go through my list and set the auto-download option on all of them) and if more than one of them fails I don't find out until I actually go into the podcast itself (which might be when I'm in the metro!). The entries you have in future features for "Download queue - add all failed" and "Download queue - add all new" would be great, I hadn't mentioned them in the Suggested Features forum because I'd already seen them in Future Features, but add my vote for their implementation Real Soon!
Let me tell you what I have observed with regard to wifi, it's pretty close to what you describe.
When the phone is asleep and you wake it up, it immediately has access to the cell network. Then it starts connecting to wifi, which takes up to a few seconds. Sometimes connecting to wifi fails.
The "only wifi" setting on DoggCatcher only affect downloads, but it won't affect updating the podcast. So what will happen is that if you have it set to only download on wifi, but you are on a cell connection, the podcast will update and any episodes that are to be downloaded will go into the queue and remain there until the wifi network is available. Now this is all in an ideal world.
What I have seen (and I'm trying to fix) is that when DoggCatcher wakes the phone from sleeping, the cell connection is available so we start updating podcasts. Then the wifi starts to connect. Whatever podcast we are updating when the wifi connects, fails because the network connection gets temporarily dropped. Then for another few seconds, the wifi connection is sort of broken because it reports itself as being connected but we don't have an ip yet. After we get an ip, it's still flaky for a few more seconds, then it becomes reliable. Podcast updates during all this can fail with a variety of different error messages.
Regarding downloading when the wifi is not connected - a download will not start if Android reports that the wifi is not connected. However I have seen Android report the wifi to be connected (while it's still getting an IP address). So we think the connection is good, but really it's not.
I'm going to try to work around some of these issues...you'll see an update once I make some progress. Once it's worked out, your scenario of having them all ready in the morning should be working fine. In the mean time, if you manually do an update late at night, all the episodes will make it into the queue and download ok. The phone won't go to sleep until they are done. It's only an update as a result of DC waking the phone that exhibits all this strangeness.
I also have been thinking of how to do the "download all failed / new" and I'm getting close. This isn't too far off.
Thanks a lot for this feedback...good stuff.
One thing that bugs me right now is that there isn't any indication later that there was a failure downloading anything, except if the failure was the last thing that happened. If something else downloads correctly (or something else fails) the failure message disappears. Perhaps the messages could be stored in some log and we could have an option to look at them? Or perhaps they could stay in the queue with a "failed" indicator which you could reset from the queue screen.
At the moment I have Doggcatcher set up to only download when on power, and I've set the Developer setting to not go to sleep when on power. Not ideal but it seems to work. However, I *HAVE* seen a few download failures.
Regarding the "wifi connected with no IP address" issue, perhaps you could have some sort of timer you could wait on when wifi first comes up. One thing you might want to test is what the return value from java.net.InetAddress.getLocalHost() is while the DHCP negotiation is going on. Or perhaps whether NetworkInterface.getNetworkInterfaces() contains the WiFi interface and then call getInetAddresses() on whichever one of those represents the WiFi interface (which according to /proc/net/dev on my phone should be tiwlan0 but I guess that as long as it contains wlan you should be fine).
These calls are from standard Java SE, I haven't checked whether the Android SDK supports them but I would assume it should.
Failure indicator - I'm thinking about adding some visual indicator on the podcasts screen to show when a podcast contains an episode that failed to download. That in combination with a "download failed" menu item, should cover this. Do you see anything missing here.
Failures on power - Do you recall the type of error that occurs? You should be able to see the details now, if you catch them before a successful update occurs (I know this surfaces a need for a persistent log of activity).
WiFi with no IP - Yep, you narrowed it down to the two approaches. Wait a little while for things to settle, or do some in depth verification that the network connection is indeed working properly. We might try the timer first, and then the net verification if the timer doesn't cut it.
Thanks for the feedback, once again.
I've seen three types of failures while on power (don't remember the exact error message but it's my interpretation):
- Host not found (for hosts that *are* in DNS)
- Network unreachable
- null (I singularly recall that is the exact message: "null", which I guess is a NullPointerException somewhere)
Could we enable stack tracing somewhere especially for the last case? Perhaps there could be a debug log somewhere.
One thing I've noticed is that ocasionally the phone seems to lose the wifi connection for no apparent reason. Most of the time it will reconnect automatically but sometimes it can't get reconnected. I'm in range of my WiFi network (and have previously connected to it) and I'll see the 3G/GPRS icon. I'll go into the WiFi settings and I see something like "Unable to connect. Press here to retry" or a similar message to the effect that there was a connection error and the phone will not retry until I actually go in there and manually enable it.
I assume the "host not found" and "network unreachable" messages happen when there's one of those hiccups. What is a bit more bizarre is when every single episode gets that message, but I guess it could be due to the time it takes to switch between connections.
Losing the wifi connection happens to me occasionally. I had an email thread with a user that has this problem multiple times a day on different wifi hotspot.
These most often occur on an update after waking from sleep. I'm working on something that I hope will resolve this or at least minimize it.
Switching from Wifi to cell and vice-versa is one of the things that I have seen cause these also. Looks like you're getting the same errors I have seen.
Logging - I added this to the future features. We need some way for users to send some log info to me for debugging purposes.