When you encounter issues with the Pocket Casts app, you may be asked to check your debug logs to help troubleshoot the problem.
These logs can be accessed via Pocket Casts > Profile > Settings > Help and Feedback > then click the ‘logs’ icon on the top right. This file contains a list of logs that help us understand what’s happening with the app.
Common Log Entries
Refresh failed: response returned no data, status code 504
This suggests the app’s calls to our refresh server are either timing out or causing server errors.
Focus lost while playing / Focus lost not playing (Android)
If your podcast is pausing unexpectedly on Android, these logs are the culprit. Android pauses playback when another app requests audio focus. You may also see Paused - Not transient or Paused - Transient immediately after. Paused - Transient means the pause is temporary (for example, a notification sound) and playback should resume automatically. Paused - Not transient means the audio focus was permanently taken (for example, you started playing in a music app) and you will need to press play again.
Current Up Next count 1009 is over the limit not adding episode xxxxx (iOS)
If you are noticing that new episodes are not automatically being added to your Up Next queue, you can go to Settings > Add to Up Next > Auto Add Limit and view if your limit has been reached. If it has, new episodes will not be added to the queue.
You’ll also be able to confirm if this is the case by checking for similar in your logs:
2024-12-12 08:16:28 Checking for auto add to up next episodes in 1 podcasts that have been updated with auto add to up next turned on limit is 1000 starting count is 10092024-12-12 08:16:28 Current Up Next count 1009 is over the limit not adding episode EPISODE NAME GOES HERE
You may also see the variant Current Up Next count X is over the limit but still adding [episode] to the top of the list — this means the episode was added to the top of the queue despite the limit being reached.
Caused by: android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed (code 11 SQLITE_CORRUPT) (Android)
This log means the database is corrupted. Unfortunately, this error is not recoverable and requires you to uninstall and reinstall the app.
E 15/12 15:28:33 Fatal crash.
java.lang.OutOfMemoryError: Failed to allocate a 32 byte allocation with 186600 free bytes and 182KB until OOM, target footprint 536870912, growth limit 536870912; failed due to fragmentation (largest possible contiguous allocation 2621440 bytes) (Android)
This error may indicate that the user’s problem is related to an ongoing issue we have where videos that are encoded in certain ways can crash Google’s own ExoPlayer framework, which we use for the Android app. Essentially, the issue causes the player to run out of memory.
Remote control: pauseCommand (iOS)
This log indicates that playback was paused from a remote device like Bluetooth headphones.
ForegroundServiceStartNotAllowedException (Android)
We’ve found that this often occurs on Android 12+ devices which have the Pocket Casts app using ‘optimized’ or ‘restricted’ battery settings. The solution is to ensure it is set to ‘Unrestricted’. The app now notifies users about this. This error may also occur when using Chromecast, but that’s due to a bug in Chromecast, not in our app.
ExoPlaybackException: Source error UnrecognizedInputFormatException (Android)
This log means the podcast episode is encoded in a format their phone can’t play.
Refresh complete found [X] new episodes (iOS)
This log appears when the app is manually refreshed or opened, and shows how many new episodes were found. The app also refreshes automatically occasionally.
Unable to obtain token, status code: 401, server error: login_email_not_found (iOS)
This log indicates that an incorrect email address was used to log in.
Sync succeeded (iOS)
As the name suggests, this log indicates that the sync was successful.
Remote control: playCommand, treating as playPause (iOS)
This log means playback was resumed from a remote device.
Remote control: changePlaybackRateCommand (iOS)
This log indicates the playback speed was changed from a Bluetooth device like a headset.
Refresh failed: with error The Internet connection appears to be offline., status code 0
This error usually occurs when something on your phone is preventing our app from accessing an internet connection. If you’re using ad blockers, firewalls, VPNs, or anything else that could be blocking our app, you might encounter this issue.
System fired ‘Audio Becoming Noisy’ event, pausing playback. (Android)
This log occurs when there’s a broadcast intent, a hint for applications that audio is about to become ‘noisy’ due to a change in audio outputs, such as when Bluetooth disconnects from the device.
Saving played up to / Saved time in database
This log occurs when the app saves the playback position locally on your device.
- iOS:
saving played up to [time] for episode [title] - Android:
Saved time in database [time]
Sent position / Synced episode progress
Occasionally, the app syncs the playback position to the server. This log indicates the event.
- iOS:
Sent position [time] status [status] for episode [title] to server— if the sync failed, you will see Sent position failed. - Android:
Synced episode progress— if the sync failed, you will see Could not sync episode progress.
If position sync failures appear frequently in the logs, you may want to check your network connection for any potential network block.
More than [X] since this episode was paused, jumping back [Y] seconds
Logs similar to the below indicate that “Intelligent Playback Resumption” is enabled under Profile > Settings (gear icon) > General. The exact jump-back duration depends on how long the episode was paused:
More than 5 minutes since this episode was paused, jumping back 10 secondsMore than 1 hour since this episode was paused, jumping back 15 secondsMore than 24 hours since this episode was paused, jumping back 30 seconds
iOS Log Entries
Performing initial full sync
This log appears when the app runs a full sync after logging in on a new device.
Processing podcast [uuid]
This log appears during a sync while the app is fetching information for an individual podcast from the server. You will typically see multiple entries of this — one per podcast — during a full sync.
UpNextSyncTask: Syncing Up Next, sending [X] changes, modified time [timestamp]
This log indicates the app is syncing changes to your Up Next queue with the server.
PlaybackQueue: Saving replace of [X] with [Y] episodes
This log appears when the Up Next queue is replaced with a new set of episodes.
PlaybackQueue: removing [episode title] episode
This log appears when an episode is removed from the Up Next queue.
Android Log Entries
Inserting [episode title] in to up next at [position]
This log appears when an episode is added to the Up Next queue.
UpNextSyncWorker – started / finished / failed
These logs track the status of the background worker that syncs Up Next queue changes to the server. UpNextSyncWorker - finished includes a duration in milliseconds. If you see UpNextSyncWorker - failed repeatedly, there may be a network issue preventing the sync from completing.