mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Bug]: Patreon RSS Feed bouncing on useragent fail #3093
Closed
opened 2026-04-25 00:13:37 +02:00 by adam
·
15 comments
No Branch/Tag Specified
master
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
No Label
bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#3093
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @noticons on GitHub (Nov 14, 2025).
What happened?
RSS feeds from patreon were formerly working just fine, and still work in other apps on my network, but Audiobookshelf has recently been unable to download episodes automatically or on request when I "check for episodes" through the webUI.
What did you expect to happen?
Downloading episodes! lol
Steps to reproduce the issue
If you don't have a patreon rss feed and don't want to pay to find out whether its working or not, Linux User Space has a free tier that has an RSS feed you can try out. https://www.patreon.com/linuxuserspace
Once you add the "member's only" RSS feed to audiobookshelf, everything works fine, including metadata and coverart, but fails to download episodes. I have included the log, which is below.
Audiobookshelf version
2.30.0
How are you running audiobookshelf?
Docker
What OS is your Audiobookshelf server hosted from?
Linux
If the issue is being seen in the UI, what browsers are you seeing the problem on?
None
Logs
Additional Notes
No response
@benn447 commented on GitHub (Nov 20, 2025):
I am experiencing a similar issue, but this appears to be a block by patreons cloudflare configuration, or cloudflare has recently updated their WAF rules, maybe causing audiobookshelf to be detected as a bot.
Cloudflare did apparently update their WAF this week, which caused a major outage, maybe this is related? 🤔
@noticons commented on GitHub (Nov 21, 2025):
If that is the factor it began two weeks ago--roughly one week before the outage. Whatever the problem is, and I'm sure you're probably right about it being cloudflare, I hope it is able to be resolved in some way.
@noticons commented on GitHub (Nov 21, 2025):
@benn447 are you still experiencing this as of today? I did some checking, and I'm still experiencing the same issue.
@MikaSturm commented on GitHub (Nov 22, 2025):
I have the same problem with both of my Patreon subscriptions
@noticons commented on GitHub (Nov 25, 2025):
@MikaSturm If this really is an useragent issue, as it seems to be, it seems the only solution would be a backend change on the server? I'm unfamiliar with this territory.
@benn447 commented on GitHub (Nov 25, 2025):
Unfortuneately, this is still occuring.
I suspect that the useragent has been detected as a bot on the cloudflare WAF or patreon has actively flagged it as traffic to be blocked.
I mainly think this is an auto detection on cloudflare, as it is unlikely patreon would actively block paying customers from using specific apps, having said that I recently noticed they are trying to push users to specific platforms like spotify.
I believe that modifing the useragent is probably the easiest solution, however its a bit disengenous to just set the useragent to chrome, firefox etc.
Maybe the better option here is to set a default useragent similar to the existing one, then allow users to modify their useragent if required?
This would mean the user isn't forced to use an incorrect useragent, but can use one if issues like this arrise.
@Vito0912 commented on GitHub (Nov 26, 2025):
It works completely fine for me. Maybe it's because you downloaded too many episodes, and Patreon protects its service by limiting how many episodes you can download (to prevent redistribution).
So this is not an issue with user agents (the error message appears because it tries multiple and none succeed) - but it does not actually mean it is caused by user-agents.
If a service decides to block users or IPs, in my opinion, it's their right to do so.
So maybe you, @advplyr can take a look, but imho this can be closed and is not an per se issue with user-agents nor ABS and just the service deciding to block users, where ABS can't do anything about it.
I just downloaded all episodes of the above mentioned podcast with no issues. You can try getting a new IP, if it maybe is caused by this. If you are using a VPN, make sure you disconnect (I was prompted by CF when using a VPN)
@nichwall commented on GitHub (Nov 26, 2025):
There are a number of user agent related issues and PRs, such as https://github.com/advplyr/audiobookshelf/issues/4758, https://github.com/advplyr/audiobookshelf/issues/3359, and https://github.com/advplyr/audiobookshelf/issues/3322. The initial PR with more discussion is in https://github.com/advplyr/audiobookshelf/pull/3099.
I don't think we necessarily need to expose the user agent string as a setting, because as mentioned in other discussions the point of the user agent is to identify what is being used. But, I can also see the argument for exposing the user agent as a setting.
@MikaSturm commented on GitHub (Nov 26, 2025):
I can confirm for my case, that it's not connected to the user agent, but the IP address of the server I host audiobookshelf on - thanks for the feedback
@Truth-And-Reason commented on GitHub (Nov 29, 2025):
Suggestion : Leave the user agent default as is , but in the podcast details section below "RSS Feed URL" add an input box for a user supplied alternative for that specific podcast. This would allow users a work around and also provide a trouble-shooting tool for users. It may cut down on the amount of help requests and bug reports.
@noticons commented on GitHub (Dec 2, 2025):
This may be a simple problem that the private rss is being over-polled and cloudflare is blocking it. So, perhaps reducing from the automatic "every hour" in the automation when adding the feed to a once a day or so will be more helpful. I've set mine this way; I'll report back whether this has been helpful.
@noticons commented on GitHub (Dec 2, 2025):
I also modified my docker-compose file to set the TZ variable for proper time reporting so that my crons will run at the right time in the container, as such:
@advplyr commented on GitHub (Dec 2, 2025):
I've not seen Patreon have issues with the user agent before. The episode downloader is set up to try 2 different user agent strings.
So far these 2 have worked for all feeds that I'm aware of. If we need to add another one that is easy enough.
I'd prefer not opening this up as another setting if we can avoid it.
I've had 2 private Patreon RSS feeds polling every hour for several years now.
@benn447 commented on GitHub (Dec 2, 2025):
This issue might be resolved now, at least for myself.
I tested patreon downloads again yesterday and they were successful.
No cloudflare errors in the logs.
I made no changes and my Ip accessing patreon remains the same.
I still think this was a cloudflare waf issue.
But I only have one patreon feed, so I dont think was cloudflare / patreon rate limiting me based on a large number of requests.
@noticons commented on GitHub (Dec 3, 2025):
While there have been a lot of comments about adding useragent options, that has never been the intention of this thread as I opened it. My purpose was to troubleshoot the actual problem that I was having. So there was no "plan" that needed to be disallowed in closing this issue.
In the interest of helping someone else who was experiencing the same issue that I was, the cron and TZ settings that I tried worked perfectly. If someone else experiences difficulty downloading private RSS feeds from Patreon, having it set to something less than every hour may be helpful.
For myself, I have it run once a day in the early morning, in the scheduling option on the audiobookshelf server for the feed. However, in order to have it do this correctly, I had to set the docker container to the correct TZ, as detailed above.