A Critical Update: Please update your Player FM for Android

Quick summary

If you’re using Player FM for Android installed before Friday, May 3 (PST) (version 1.0.0 to version 1.0.6, inclusive), it’s strongly recommended to update — you can do so from the following Play link.
Important: Please update Player FM for Android

This is especially important if it’s on a mobile having limited bandwidth limits.

This bug , related to excessive image downloading, has now been fixed, along with many other related changes to reduce bandwidth, make usage clearer, and give users more options in these matters. Incidentally, you’ll also benefit from a number of other enhancements to the app, including the introduction of search and OPML importing, and an improved notification widget. Those features will be covered in a subsequent post, as this bandwidth incident warrants a post all of its own.

What happened?

I started to receive reports of excessive mobile bandwidth usage 2 days after launch (first report on Tuesday). While waiting for clarifications, I decided we should make some educated guesses and start working on it. At first, I assumed it was due to people streaming online content. In other words, a UX problem where it wasn’t clear what’s streamed and what’s played locally. For this reason, we scrambled to re-design the Settings page to make things more clear, add a warning that shows the first time the user streams an episode, and update the FAQ.

Further queries indicated this was not the issue. I thought it might be related to the periodic updates, Player FM’s equivalent of checking RSS feeds. In fact, Player FM’s cloud based approach should make this more efficient than a regular podcatcher, because the server takes care of polling all of the user’s subscriptions, and also because the server uses HTTP best practices to return quick responses and caching to prevent the same response being repeatedly fetched. However, it could still cause in the order of 10s of MB weekly downloads (similar to what a traditional podcatcher might consume); so we added further features to configure this in the settings. Users can now turn off those updates while on 3G.

However, as we looked further on Friday, we discovered the issue was more straightforward. A straightforward bug was causing images, in certain conditions to be re-downloaded on these periodic updates. We’re still analysing the details, but the fix that went live on Friday fixed this issue, and we’ve subsequently added a further update (1.0.8) that downloads pre-rendered, efficiently cached images, instead of downloading them directly from the publishers’ sites. While most publishers have efficient feeds, they still vary widely from each other and some can have problems on occasion; so it’s more efficient for us to serve them via a fast proxy. We’re using Cloudinary, the same service which has reliably cached series images on the Player FM website.

What’s next?

We’re not stopping here. If it’s practical, we’ll provide estimates on mobile bandwidth depending on the user’s settings. We already have that for storage use, where we make a storage estimate based on the user’s actual settings and subscriptions. We’ll make some of this configurable in the initial setup process too, to the extent that we can keep it simple too. And we’ll also be working this week to improve the image display process overall; the default mic icons are showing up too often, instead of the series images. It’s a well-intentioned technique aiming to reduce the app’s memory footprint and make it run smoother; but we can do better to get the best of both worlds.

We’ll also be adding in-app support for suggesting or requiring updates if necessary.

Most importantly, I’ll be far more vigilant about mobile bandwidth issues in the future. I care a lot about bandwidth usage and flexibility, which is why we launched with a lot of flexibility over download options. I’m sorry this bug arose. It slipped past us in the lead-up to launch and I’ll now be watching mobile bandwidth usage much closer.