Jellyseerr

Media

A media request manager for Jellyfin, Plex and Emby, forked from Overseerr.

Latest v3.4.1 · by JellyseerrWebsitefallenbagel/jellyseerr

Release activity

Release activity — 9 releases across 8 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 20261 release on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 20261 release on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 20261 release on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

9 releases in the last year, busiest day 2

Changelog

v3.4.1

Release v3.4.1

Fixed 4
  • Keep user list action buttons sized with a single user
  • Don't delete requests when removing media from arr
  • Handle already-removed media in radarr/sonarr delete
  • Fix docker login race condition
3.4.1 - 2026-07-30
🐛 Bug Fixes
  • (ui) Keep user list action buttons sized with a single user (#3311) - (f926248)
  • Don't delete requests when removing media from arr (#3288) - (3ee6f92)
  • Handle already-removed media in radarr/sonarr delete (#3209) - (8ea0c17)
⚙️ Miscellaneous Tasks
  • (release) Prepare v3.4.1 - (69f73a6)
  • (release) Prepare v3.4.1 release - (5c8f1cb)
  • Fix docker login race condition (#3303) - (95e18de)
  • Parallelize the action steps when possible (#3225) - (45f7a7a)
View originalPermalink
How v3.4.1 went
v3.4.0

Release v3.4.0

Added 7
  • Add user details sync functionality to PlexImportModal
  • Support userId parameter when creating issues via API
  • Add Simkl media link to external links
  • Add Discord thread ID support for notifications
  • Allow admins to bypass user quota limits for requests
  • Add option to disable version check
  • Add Jellyfin/Emby quick connect authentication
Fixed 12
  • Prevent false removals for merged-version Plex items in availability sync
  • Use added sort in recent requests slider on discover page
  • Respect hosts file for SMTP connections in email
  • Fallback to server locale for Default user language in notifications
  • Make Discord IDs available even when notification is disabled on Seerr
  • Proxy clients built before proxy initialization
Security 1
  • Patch path traversal vulnerability leading to remote code execution in the ImageProxy
3.4.0 - 2026-07-28

This release patches a path traversal vulnerability in the avatar image proxy.

Exploitation vectors:

  • A malicious or compromised Jellyfin/Emby media server returning a crafted HTTP response.
  • A man-in-the-middle attacker intercepting the connection to the media server, if it is configured over HTTP instead of HTTPS (the default setting).
🛡️ Security
🚀 Features
  • (PlexImportModal) Add user details sync functionality (#2977) - (902b88e)
  • (api) Support userId when creating issues (#3100) - (5f2722d)
  • (external-links) Add Simkl media link (#3121) - (5ae70d0)
  • (notifications) Add Discord thread ID support (#3065) - (6e9ba06)
  • (requests) Allow admins to bypass user quota limits (#2026) - (72536da)
  • Allow to disable version check (#3137) - (73937c0)
  • Add jellyfin/emby quick connect authentication (#2212) - (74c8db4)
🐛 Bug Fixes
  • (availability-sync) Prevent false removals for merged-version Plex items (#3224) - (46d8033)
  • (discover) Use added sort in recent requests slider (#3202) - (8ccd0f6)
  • (email) Respect hosts file for SMTP connections (#3082) - (b660201)
  • (i18n) Fallback to server locale for "Default" user lang in notifs (#3190) - (ef9edc8)
  • (next) Add next-env.d.ts to .gitignore (#3282) - (3279393)
  • (notifications) Make the Discord IDs available even when the notification is disabled on Seerr (#3139) - (a8f1780)
  • (proxy) Proxy clients built before proxy init (#3196) - (8ad191f)
  • (scanners) Decline orphaned requests when media is removed from servarr (#3191) - (2e0e4ce)
  • (subscriber) Await request status updates (#3223) - (f481b56)
  • (ui) Revalidate request list after approving or declining a request (#3283) - (e810b98)
  • (webpush) Guard subscriptions request until user loads (#3113) - (6829850)
  • Support for IPv6 address literals in HOST env var (#2614) - (0adbf50)
  • Prevent cross-instance external ID collisions (#3203) - (8e02d92)
  • Close manage movie sidebar without back reopening (#2590) - (0a1f703)
  • Availability sync demotion and orphan season rollup edge cases (#3148) - (784faa9)
📖 Documentation
  • (blog) Rootless design and PUID/PGID rationale (#3105) - (bf5323f)
  • (blog) Fix "monitorNewItems" feature description and previous post author (#3103) - (4e7a227)
  • Update truenas migration section to include chown (#3143) - (ebac489)
  • Add TrueNAS migration guidance (#3107) - (8b062ed)
⚙️ Miscellaneous Tasks
  • (actions) Update github actions (#3041) - (0438710)
  • (dev) Add devenv setup (#3138) - (d2ffe4f)
  • (i18n) Update translations from Weblate - (4b65ab5)
  • (i18n) Update translations from Weblate - (1926095)
  • (i18n) Update translations from Weblate - (d051deb)
  • (i18n) Update translations from Weblate - (8d351bc)
  • (i18n) Update translations from Weblate - (3f33842)
  • (i18n) Update translations from Weblate - (6c8527f)
  • (i18n) Update translations from Weblate - (ab26f06)
  • (i18n) Update translations from Weblate - (0a305f6)
  • (i18n) Update translations from Weblate - (32249f2)
  • (i18n) Update translations from Weblate - (2a249a8)
  • (release) Prepare v3.4.0 - (2dbe886)
  • (release) Prepare 3.4.0 release - (b21049a)
New Contributors ❤️
  • @aaamoeder made their first contribution
  • @kouellette made their first contribution
  • @u61d made their first contribution
  • @thraizz made their first contribution
  • @john-fletcher made their first contribution
  • @Gilmoursa made their first contribution
  • @atoy3731 made their first contribution
  • @nightt5879 made their first contribution
View originalPermalink
How v3.4.0 went
v3.3.0

Release v3.3.0

Added 5
  • Add DB_POOL_SIZE environment variable for postgres connection pool
  • Add server-side i18n for notification agents
  • Add support for public seerr logo in email
  • Add plex media ratingKey and ratingKey4k to webhook payload
  • Add route to fetch user by jellyfin id
Changed 2
  • Support multiple Discord IDs by updating webhook field discordID from string to discordIDs array
  • Filter out Thanks credits when looking at a person's credits
Fixed 14
  • Drop popup.closed check in Plex pin poll
  • Detect deleted seasons when media server retains empty season metadata
  • Preserve keyword filter input focus after selection in discover
  • Enable trailingSlash in docs to prevent 404 flash on direct navigation
  • Switch to SWC minimizer to fix broken runtime bundle in docs
  • Set the default value of UpdateDateColumn to CURRENT_TIMESTAMP
3.3.0 - 2026-06-02
🚀 Features
  • (db) Add DB_POOL_SIZE environment variable for postgres connection pool (#2990) - (f093c69)
  • (i18n) Add server-side i18n for notification agents (#2731) - (cd257ba)
  • (notification) Add support for public seerr logo in email (#3036) - (a8f147d)
  • [breaking](notifications) Support multiple Discord IDs (#2712) - (63175f5)
    • :warning: This change updates the webhook field discordID from a string into discordIDs, a list of string string[].
  • Add plex media ratingKey and ratingKey4k to webhook payload and… (#1812) - (9b7b50b)
  • Add route to fetch user by jellyfin id (#2074) - (15296a0)
  • Filter out "Thanks" credits when looking at a person's credits (#2370) - (d024849)
🐛 Bug Fixes
  • (auth) Drop popup.closed check in Plex pin poll (#2941) - (ce9643c)
  • (availability-sync) Detect deleted seasons when media server retains empty season metadata (#2850) - (9c34864)
  • (discover) Preserve keyword filter input focus after selection (#2962) - (32169d9)
  • (docs) Enable trailingSlash to prevent 404 flash on direct navigation (#3039) - (df105b8)
  • (docs) Switch to SWC minimizer to fix broken runtime bundle - (d88242f)
  • (docs) Bump openapi docs packages to 5.0.2 (#3027) - (080c68a)
  • (entity) Set the default value of UpdateDateColumn to CURRENT_TIMESTAMP (#2913) - (86e780e)
  • (external-link) Replace TMDB ID with IMDB ID for Trakt links (#2934) - (f078da8)
  • (imdbRadarrProxy) Pass headers and nodeCache as options instead of params (#2900) - (7861db4)
  • (issuedescription) Fix issue display lists in IssueDescription (#2972) - (ce47cfb)
  • (media) Clean up watchlist on error card delete (#3073) - (ee915b9)
  • (media-request) Remove cascade from modifiedBy to prevent user column wipe (#2911) - (2dfea0c)
  • (ntfy) Save priority field as number instead of string (#3096) - (2fa535d)
  • (ntfy) Remove undefined fields from ntfy payload (#2931) - (377bf65)
  • (override-rules) Use find() instead of index lookup for service resolution (#2903) - (5fdedb1)
  • (plex-watchlist-sync) Handle MediaContainer.Video fallback in watchlist sync (#2992) - (99f8520)
  • (request) Restore media status correctly when deleting requests (#3064) - (ff88d52)
  • (scanners) Reset orphaned processing media from deleted Radarr/Sonarr entries (#2757) - (198e4e5)
  • (scanners) Ignore unknown seasons in availability rollup and skip empty placeholder seasons (#2958) - (ce51f6a)
  • (search) Replace "TV" with "Series" in search placeholder (#3067) - (c04172a)
  • (slider) Add async to spring animation (#2978) - (5267611)
  • (tag) Use inset ring to avoid clipped outlines (#2985) - (cf87205)
  • (tvrequest) Allow special episodes when partial series requests are disabled (#2973) - (b32ab02)
  • (users) Correct auth middleware for web push subscription (#3005) - (bd27f2d)
  • (watchlistsync) Re-request deleted media from watchlist (#3072) - (2588e49)
  • Update series status to partially available when seasons are missing (#3044) - (4ed29cf)
  • Add missing "key" to React arrays (#3043) - (4fa2c71)
  • Send availability notification if media is available before approval (#2819) - (d426e1e)
  • Normalize webhook payload encoding to support raw JSON inputs (#2641) - (5b45806)
📖 Documentation
  • (blog) Add v3.3.0 release blog post (#3098) - (759e359)
  • (fail2ban) Add fail2ban documentation (#2894) - (39e9f1f)
  • (nixpkgs) Add documentation for nixpkgs 26.05 (#3089) - (5fc7a40)
  • Add REST API documentation (#2981) - (7aa1470)
  • Add Terraform/OpenTofu provider page (#2967) - (811126d)
🚜 Refactor
  • (docs) Move REST API docs to navbar and dedicated sidebar (#3040) - (08b7bd4)
  • (logs) Align failed login attempt message with failed sign-i… (#2914) - (3e4bf1b)
  • Replace react-toast-notifications with react-hot-toast (#3004) - (dfde4d3)
⚙️ Miscellaneous Tasks
  • (actions) Update github actions (#3028) - (6bb402a)
  • (actions) Update github actions (#2982) - (20dbc30)
  • (actions) Update github actions (major) (#2947) - (952261b)
  • (actions) Update taiki-e/install-action action to v2.75.18 (#2961) - (d50bdad)
  • (actions) Update github actions (#2945) - (60a2a87)
  • (create-tag) Add gh token to avoid api rate limit in tag version retrieval (#2886) - (85bfdb2)
  • (i18n) Update translations from Weblate - (73fcfd2)
  • (i18n) Update translations from Weblate - (788311a)
  • (i18n) Update translations from Weblate - (6eb43e0)
  • (i18n) Update translations from Weblate - (656e33f)
  • (i18n) Update translations from Weblate - (4742018)
  • (i18n) Update translations from Weblate - (2d4cd03)
  • (i18n) Update translations from Weblate - (3c249c7)
  • (i18n) Update translations from Weblate - (4e4e673)
  • (i18n) Update translations from Weblate (#2906) - (6513915)
  • (i18n) Update translations from Weblate (#2901) - (56ab94a)
  • (release) Prepare v3.2.0 - (703faf9)
  • (release) Merge develop into main - (0621e3d)
  • (release) Remove git-cliff footer in release changelog (#2986) - (550c3bc)
  • Cleanup intl polyfills and dev config (#2965) - (ba6ed6c)
  • Ignore Renovate bot on irrelevant jobs (#2904) - (1d2aa76)
New Contributors ❤️
  • @defaultdino made their first contribution
  • @haribo-hyung made their first contribution
  • @felixschndr made their first contribution
  • @burakemirsezen made their first contribution
  • @death2all110 made their first contribution
  • @fredrikburmester made their first contribution
  • @marcinjurczak made their first contribution
  • @Josh-Archer made their first contribution
  • @Finchow made their first contribution
  • @kyle-engler made their first contribution
  • @danjuv made their first contribution
  • @aldoeliacim made their first contribution
View originalPermalink
How v3.3.0 went
v3.2.0

Release v3.2.0

Added 17
  • Add support for collections in blocklist
  • Add Estonian language support
  • Add Luxembourgish language support
  • Add Vietnamese language support
  • Add ntfy markdown formatting for notifications
  • Add webhook custom headers for notifications
Changed 4
  • Handle errors gracefully when content is available in discover
  • Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint
  • Mark requests as failed when Radarr or Sonarr unreachable
  • Sort quality profiles in ascending order in request and service configuration
Fixed 14
  • Resolve Plex OAuth client ID mismatch
  • Correctly classify final MIME header in PGP email encryption
  • Preserve newlines in PGP key textarea fields
  • Use static version in auth header for emby only
  • Replace MySQL-only onUpdate with @UpdateDateColumn
  • Await setPassword to fix race condition
3.2.0 - 2026-04-15
🚀 Features
  • (blocklist) Add support for collections (#1841) - (993ae4c)
  • (discover) Handle errors gracefully when content is available (#1542) - (7920970)
  • (i18n) Add Estonian language support (#2611) - (56b79ff)
  • (i18n) Add Luxembourgish language support (#2671) - (dccdc95)
  • (i18n) Add Vietnamese language support (#2670) - (40edaea)
  • (jellyfin) Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint (#2340) - (3557745)
  • (notifications) Add ntfy markdown formatting (#2602) - (77f2c13)
  • (notifications) Webhook custom headers (#2230) - (3152f72)
  • (notifications) Add priority setting for ntfy agent (#2306) - (61e0377)
  • (person) Add tmdb- and imdb link on person detail page (#2136) - (fb2ee7c)
  • (quota) Added support for unlimited quota days (#2797) - (6d8b2b7)
  • (requests) Mark requests as failed when Radarr/Sonarr unreachable (#2171) - (c23117e)
  • (settings) Add blocklist region and language options (#1802) - (ff469cb)
  • (settings) Add help tooltips for services setup (#2662) - (f5115da)
  • (sonarr) Add monitorNewItems option to sonarr settings & modal (#2071) - (5c34c91)
  • (trending) Add filter options (#2137) - (4ce0db1)
  • (ui) Add loading state to request approve/decline buttons (#2815) - (bd8f2d4)
  • (userlist) Add sortable columns to User List (#1615) - (eaf397a)
  • (webhook) Add imdbid to webhook notification (#2658) - (2432e8d)
  • Sort quality profiles ASC in request and service configuration (#1805) - (25e376c)
  • Add trailing whitespace warning on login username field (#2040) (#2177) - (636dcb9)
🐛 Bug Fixes
  • (auth) Resolve Plex OAuth client ID mismatch (#2746) - (15b3109)
  • (email) Correctly classify final MIME header in PGP email encryption (#2618) - (9ec3d58)
  • (email) Preserve newlines in PGP key textarea fields (#2617) - (835e917)
  • (emby) Use static version in auth header for emby only (#2821) - (fe2c041)
  • (entities) Replace MySQL-only onUpdate with @UpdateDateColumn (#2823) - (0b8f872)
  • (generate-password) Await setPassword to fix race condition (#2845) - (061121c)
  • (issues) Update issue timestamp when adding comments (#2616) - (a16d046)
  • (jellyfin-scanner) Add TheMovieDb provider fallback for Jellyfin scanner (#2605) - (10f23f0)
  • (login) Resolve stuck transition when switching login forms (#2779) - (735ec47)
  • (media) Exclude null mediaAddedAt entries (#2607) - (001f6b1)
  • (migration) Repair postgres blocklist id sequence (#2686) - (f40323c)
  • (movie,tv) Respect display language for trailers (#2674) - (90d407d)
  • (open-api) Add missing mediaType query parameter to blocklist and watchlist (#2722) - (c7185d4)
  • (override-rules) Remove users from useEffect dependency array (#2771) - (be57997)
  • (overseerr-merge) Sanitise corrupt quota values during overseerr migration (#2863) - (43eff25)
  • (plex) Set 4K Plex URLs whenever ratingKey4k is set (#2635) - (1548948)
  • (proxy) Add path validation guardrail to imageproxy (#2531) - (e086081)
  • (region-selector) Prevent empty region reporting during sync (#2636) - (fbfcb43)
  • (request) Record modifiedBy on retry and add route tests (#2824) - (20ccd4b)
  • (request) Correct delete permission check and await movie save (#2742) - (6aeab38)
  • (requests) Mark requests as completed when media is already available (#2462) - (d25d0ca)
  • (settings) Persist new settings defaults to disk on startup (#2884) - (66130be)
  • (settings) Serialize settings writes and prevent partial overwrites (#2696) - (6c52a2f)
  • (settings) Remove beta info banner (#2615) - (fece753)
  • (setup) Fix Plex login not proceeding after authentication (#2596) - (1dc5154)
  • (watchlist-sync) Handle empty watchlists on PostgreSQL (#2718) - (865396f)
  • Improve local login UX (#2849) - (aef2481)
  • Await missing repository saves (#2760) - (1bb638e)
  • Helm chart liveness and readiness probe (#2755) - (4434c45)
  • Disambiguate tmdb ids by media type across lookups (#2577) - (0be1896)
  • Anchor streaming service filter check icon to each provider card (#2634) - (94ccd47)
📖 Documentation
  • (contributing-guide) Fix a typo (#2807) - (6f9b743)
  • (docker) Replace backslashes by backticks in windows docker run commands [skip-ci] (#2557) - (40e02bb)
  • Clarify Docker volume creation instructions on fresh Windows install (#2861) - (a133930)
  • Move network-related docs to a dedicated tab (#2791) - (5bbdc52)
  • Promote Nixpkgs as an official installation method (#2775) - (05ad60c)
  • Fix PM2 start command syntax (#2713) - (5373da4)
🚜 Refactor
  • (imageproxy) Reduce noisy image cache logging (#2789) - (036d000)
  • (notifications) Move event from author to title field in Discord Embed (#2119) - (a2d1e1b)
  • (userlist) Responsive columns and buttons (#2083) - (dbe1fca)
  • (watchlistsync) Log media request creation after success instead of before (#2790) - (685cb44)
  • Rename Error components to ErrorPage (#2668) - (d5c5f1f)
🧪 Testing
  • (user-list) Deflake sorting assertions (#2766) - (20c2ed8)
  • Support server-side unit testing (#2485) - (8563362)
⚙️ Miscellaneous Tasks
  • (actions) Update github actions (#2683) - (a2154f9)
  • (actions) Update github actions (#2672) - (f047cab)
  • (actions) Update github actions (#2632) - (e25c1a5)
  • (create-tag) Correct quote style in commit message for tag preparation (#2593) - (687f18b)
  • (docker) Release alias for major and minor version series (#2881) - (1cc73a8)
  • (i18n) Update translations from Weblate - (e85216a)
  • (i18n) Update translations from Weblate - (b1adc79)
  • (i18n) Update translations from Weblate (#2419) - (4bd7c19)
  • (pr-validation) Make checklist box detection case-insensitive (#2802) - (58514ec)
  • (pr-validation) Update pull request permissions to write for validation jobs (#2800) - (986761f)
  • (pr-validation) Disable package manager cache in nodejs setup (#2799) - (67e27d5)
  • (release) Prepare v3.2.0 - (e0b2a1c)
  • (release) Merge develop into main - (c5800a0)
  • Bump minimum required node version to 22.19.0 (#2873) - (891265f)
  • Add PR validation workflow and update contributing guidelines (#2777) - (772e83d)
  • Upgrade to eslint v9 (#2574) - (36243a0)
  • Ignore helm scope in git-cliff (#2638) - (4d2b658)
New Contributors ❤️
  • @aslafy-z made their first contribution
  • @leereilly made their first contribution
  • @jisef made their first contribution
  • @dougrathbone made their first contribution
  • @bobziroll made their first contribution
  • @v3DJG6GL made their first contribution
  • @Roboroads made their first contribution
  • @costajohnt made their first contribution
  • @tiagodefendi made their first contribution
  • @Jyasapara made their first contribution
  • @Sym-jay made their first contribution
  • @bibi0019 made their first contribution
  • @redondos made their first contribution
  • @bogo22 made their first contribution
  • @jabloink made their first contribution
  • @YakGravity made their first contribution
  • @dj0024javia made their first contribution
  • @Jerra94 made their first contribution
  • @its-wizza made their first contribution
  • @ventiph made their first contribution
  • @RinZ27 made their first contribution
View originalPermalink
How v3.2.0 went
v3.1.1

Release v3.1.1

Fixed 1
  • Type axios instance in imageproxy
Security 1
  • Patch CVE-2026-40175 - Unrestricted Cloud Metadata Exfiltration via Header Injection Chain
3.1.1 - 2026-04-13

This update addresses a critical security vulnerability discovered in one of our core dependencies (axios). This is not the same vulnerability where axios was hijacked.

🛡️ Security
🐛 Bug Fixes
  • (imageproxy) Type axios instance - (74100e9)
View originalPermalink
How v3.1.1 went
v3.1.0

Release v3.1.0

Added 5
  • Allow using an existing PVC as config volume in Helm chart
  • Make Servarr API request timeout configurable
  • Self-host font for better privacy
  • Add GatewayAPI route support to Helm chart
  • Add missing indexes on all foreign key columns for performance improvement
Changed 1
  • Replace deprecated Tailwind utilities
Fixed 11
  • Add "v" as prefix for appVersion tag in Helm chart
  • Include unmatched seasons in processable seasons in Jellyfin scanner
  • Fix error-message override in link-account
  • Add TVDb to TMDB fallback in Plex scanner
  • Trigger search for existing monitored movies without files in Radarr
  • Increase default API timeout from 5000ms to 10000ms for Servarr
Security 3
  • Patch CVE-2026-27707 for unauthenticated account registration on Plex-configured Seerr instances via Jellyfin authentication endpoint
  • Patch CVE-2026-27793 for broken Object-Level Authorization in User Profile Endpoint that exposed third-party notification credentials
  • Patch CVE-2026-27792 for missing authentication on pushSubscription endpoints
3.1.0 - 2026-02-27
🛡️ Security
  • Patch CVE-2026-27707 - Unauthenticated account registration on Plex-configured Seerr instances via Jellyfin authentication endpoint - (4ae2068)
  • Patch CVE-2026-27793 - Broken Object-Level Authorization in User Profile Endpoint Exposes Third-Party Notification Credentials - (4f089b2)
  • Patch CVE-2026-27792 - Missing authentication on pushSubscription endpoints - (946bdecec)
🚀 Features
  • (helm) Use an existing PVC as config volume (#2447) - (8f0c904)
  • (servarr-api) Make Servarr API request timeout configurable (#2556) - (3bcb4da)
  • Self-host font for better privacy (#2540) - (10ea21b)
🐛 Bug Fixes
  • (helm) Add "v" as prefix for appVersion tag (#2445) - (04b9d87)
  • (jellyfin-scanner) Include unmatched seasons in processable seasons (#2538) - (68f56d2)
  • (link-account) Fix error-message override (#2547) - (b843be0)
  • (plex-scanner) Add TVDb to TMDB fallback in plex scanner (#2537) - (7c60a5c)
  • (radarr) Trigger search for existing monitored movies without files (#2391) - (55776ea)
  • (servarr) Increase default API timeout from 5000ms to 10000ms (#2442) - (b499976)
  • (sonarr) Use configured metadata provider for season filtering (#2516) - (5013d1d)
  • (watch-data) Use sentinel values to avoid invalid SQL syntax (#2552) - (947f70c)
  • (watchlist-sync) Correct permission typo for TV auto requests (#2488) - (e0e4b6f)
  • Preserve blocklist on media deletion & optimise watchlist-sync (#2478) - (9da8bb6)
🚜 Refactor
  • (tailwind) Replace deprecated tailwind utilities (#2542) - (f42a4ec)
📖 Documentation
  • (synology) Add installation guide via SynoCommunity (#2503) - (0e636a3)
  • (truenas) Update install/migration guide (#2491) - (dc1734d)
  • (unraid) Improve unraid migration guide (#2470) - (5e64d49)
  • Update Unraid install and migration guides with dual permission methods (#2532) - (a0d0eb1)
  • Add a warning in migration-guide for third party installation (#2527) - (7e9dff3)
  • Remove double quotes (") from DB_HOST environment variable (#2514) - (fa905be)
  • Add Unraid installation and migration guide (#2440) - (b6a9132)
  • Fix migration guide title (#2425) - (39ae32f)
⚡ Performance
  • Add missing indexes on all foreign key columns (#2461) - (c6bcfe0)
⚙️ Miscellaneous Tasks
  • (changelog) Fix changelog template (#2431) - (c2977f6)
  • (eslint) Add react/self-closing-comp (#2563) - (cd8b386)
  • (github) Add docs and maintenance issue templates (#2467) - (cf4883a)
  • (helm) Add GatewayAPI route support to helm chart (#2544) - (3a42f59)
  • (helm) Update ghcr.io/seerr-team/seerr ( 3.0.0 → 3.0.1 ) [skip-ci] (#2441) - (87fb0df)
  • (husky) Fixed husky commit message from bash/zsh syntax to sh syntax (#2572) - (a00c9e5)
  • (release) Prepare ${TAG_VERSION} - (94a70bb)
  • Updated the Contributing and Security guides to reflect our current practices (#2579) - (0d40a42)
  • Disable nextjs telemetry (#2517) - (cecdd63)
  • Update contributing guide regarding Automated AI Agent (#2518) - (880fbc9)
  • Remove discord notification from release (#2501) - (fba20c1)
  • Add create-tag workflow to streamline release process (#2493) - (06e5eb0)
  • Update concurrency logic (#2481) - (4939f13)
  • Add semantic-pr workflow to enforce conventional commits (#2472) - (5e57fdc)
New Contributors ❤️
  • @caillou made their first contribution
  • @Kenshin9977 made their first contribution
  • @MagicLegend made their first contribution
  • @wiiaam made their first contribution
  • @mjonkus made their first contribution
  • @nova-api made their first contribution
  • @mreid-tt made their first contribution
  • @DataBitz made their first contribution
  • @Hyperion2220 made their first contribution
  • @blassley made their first contribution
  • @JanKleine made their first contribution
  • @koiralasandesh made their first contribution
View originalPermalink
How v3.1.0 went
v3.0.1

Release v3.0.1

3.0.1 - 2026-02-14
⚙️ Miscellaneous Tasks
  • (release) Prepare 3.0.1 - (789bcc8)
View originalPermalink
How v3.0.1 went
v3.0.0

Release v3.0.0

Added 11
  • Add completed count to request count API
  • Add excludeKeywords parameter to discovery queries
  • Add issue description preview
  • Make embedded posters optional in notifications
  • Add user's avatar next to Requested/Last Modified by icon
  • Add support for dynamic placeholders in webhook URL
Changed 2
  • Do not enforce TLD on email
  • Rebrand Jellyseerr logos to Seerr
Fixed 7
  • Handle optional chaining for recentlyWatched data in user profile
  • Respect is4k parameter for all media status changes
  • Remove spaces from tags in *arr
  • Catch error when watchlist item doesn't exist anymore
  • Handle resolution check for single-server setups in availability sync
  • Fix 4K media availability detection
  • Prevent incorrect season deletion when media server is unreachable
3.0.0 - 2026-02-14
Migrating from Overseerr/Jellyseerr to Seerr

Read our release announcement to learn what Seerr means for Jellyseerr and Overseerr users. Please follow our migration guide for detailed instructions on migrating from Overseerr or Jellyseerr.

🚀 Features
  • (api) Add completed count to request count API (#1824) - (c024799)
  • (api) Add excludeKeywords parameter to discovery queries (#1908) - (cd479d0)
  • (issue) Add issue description preview (#1881) - (13fe4c8)
  • (notifications) Make embedded posters optional (#1364) - (479be0d)
  • (requests) Add user's avatar next to Requested/Last Modified by icon (#1750) - (af7ceaf)
  • (ui) Rebrand Jellyseerr logos to Seerr (#2406) - (55c2d54)
  • (webhook) Add support for dynamic placeholders in webhook URL (#1491) - (17172e9)
  • Overseerr to Jellyseerr migration (#2019) - (4e9c94c)
  • Do not enforce TLD on email (#2075) - (b34ca15)
  • Migrate to validator from email-validator (#2059) - (f7f00ce)
  • Add anidb support to jellyfin scanner (#1533) - (b209e7f)
  • Add tvdb indexer (#899) - (22b2824)
  • Add IMDb rating votes count in tooltip (#1696) - (d3fd502)
  • Dns caching manager (#1294) - (b4adfd2)
🐛 Bug Fixes
  • (UserProfile) Handle optional chaining for recentlyWatched data (#1852) - (5c1583c)
  • (api) Respect is4k parameter for all media status changes (#1951) - (9a92d6a)
  • (api) Correct Jellyfin users endpoint documentation (#2073) - (a790934)
  • (api) Cleanup radarr bits in sonarr api (#2035) - (a8c7e35)
  • (api) Add a migration script to rename *arr tags with spaces (#1946) - (f2bd0ab)
  • (api) Remove spaces from tags in *arr (#1913) - (837629e)
  • (api) Catch error when watchlist item doesn't exist anymore (#1907) - (e9f2f44)
  • (availability-sync) Handle resolution check for single-server setups (#2334) - (0f7d296)
  • (availability-sync) Fix 4K media availability detection (#2298) - (6275569)
  • (availability-sync) Prevent incorrect season deletion when media server is unreachable (#2302) - (448a25e)
  • (base-scanner) Derive media availability from actual season state… (#2412) - (15be3d7)
  • (base-scanner) Fix PROCESSING status persisting for unmonitored seasons (#2311) - (bb2120c)
  • (collection) Allow re-request of deleted items in a collection (#2339) - (6031fab)
  • (deps) Upgrade typeorm to 0.3.28 to address security vulnerabilities (#2333) - (f8f90cb)
  • (dnscaching) Check dnsCache before init & support forceipv4 with caching (#1910) - (9e73757)
  • (dnscaching) Display stats for DNS caching (#1858) - (368ecf8)
  • (docker) Pass COMMIT_TAG to build stage for custom image builds (#2146) - (2fe7253)
  • (docker) Casing in dockerfile (#2141) - (6dcae34)
  • (download-tracker) Reset both service caches when resetting downloads (#2065) - (0d6bfa1)
  • (jellyfin-api) Use standard Authorization header (#2211) - (f4fe166)
  • (jellyfin-scan) Reduce jellyfin API calls during recently added scan (#2205) - (15356df)
  • (local-login) Remove automatic plex linking and reduce logout log verbosity (#2225) - (3ee6966)
  • (login) Add missing keys to PlexLoginButton FormattedMessage children (#2291) - (d0f029b)
  • (media) Handle 4K Radarr removal for multiple instances (#2037) - (7dfa30a)
  • (media-request-subscriber) Prevent mediald nullification from cascade saves (#2356) - (1ed86c1)
  • (mediarequest) Explicitly set mediaId when creating request (#2316) - (beba2ea)
  • (migration) Add cleanup step for duplicate push subscriptions before enforcing unique constraint (#2269) - (0c95b5e)
  • (network-settings) Convert DNS cache TTL values to numbers (#2299) - (c9037f7)
  • (override-rules) Show correct genres for both *arr services (#2155) - (bde322d)
  • (overriderules) Display the users of an override rule (#2410) - (3dea58e)
  • (overriderules) Test service using the right endpoint (#2399) - (028c7c2)
  • (plex-settings) Fix Plex preset selection not enabling save button (#2289) - (e0a8103)
  • (prettier) Include sw.js file in .prettierignore (#1885) - (d5bf175)
  • (proxy) Configure proxy agent connection limits and IPv4 support (#2303) - (dbd5935)
  • (pushover) Prevent notifications when agent is disabled or unconfigured (#2304) - (ac7c298)
  • (servarr) Add timeout to Radarr/Sonarr API requests to prevent infinite loading (#2375) - (faa2c0a)
  • (servarr) Replace spaces in arr user tags with - (#2231) - (f91a26b)
  • (settings) DNS cache UI consistency, validation, and conditional rendering (#2382) - (91261f6)
  • (settings) Correct port saving of proxy settings (#1890) - (d82c6f6)
  • (setup) Fix Plex login not proceeding after authentication (#2290) - (4ab9193)
  • (sonarr) Re-monitor episodes when re-requesting deleted but monitored seasons (#2312) - (88b2e78)
  • (subscriber) Prevent infinite loop when requesting existing media with scan disabled (#2043) - (d5ff0c1)
  • (tvdb) Respect display language when fetching metadata (#1889) - (4878722)
  • (tvdb) Return specials seasons (#1894) - (6245dae)
  • (ui) Correct season pluralization in RequestItem (#2307) - (767dc52)
  • (ui) Correct season pluralisation in RequestCard (#2305) - (3f35b8c)
  • (ui) Remove duplicate download items in manage slide over (#1916) - (adbcf80)
  • (ui) Ensure mobile media type filter is always visible on actor pages (#2128) - (5978587)
  • (watchlist) Remove error log when a media from the watchlist is blacklisted (#2407) - (3eea8ee)
  • (watchlist) Handle undefined Guid for Plex watchlist metadata (#1914) - (328517c)
  • (webpush) Avoid querying push subs with empty user list (#2380) - (e3dc1c3)
  • (webpush) Improve iOS push subscription endpoint cleanup (#2140) - (d0c9afc)
  • Run the blocklist migration last (#2417) - (bcd8002)
  • Add IF EXISTS to SQLite migration DROP INDEX statements (#2398) - (4f7819f)
  • Preserve deleted status when processing movies (#2066) - (48631db)
  • Disable automatic auth revalidation on auth pages (#2213) - (1f04eeb)
  • Include video content in the blacklisted tags processing job (#1736) - (2e6e9ad)
  • Delete endpoint on push notification disable (#2067) - (a975ab2)
  • Update github repo refs for docker hub (#2053) - (a988f8e)
  • Path in docs and compose for postgres 18 (#2049) - (de0e9b1)
  • Remove console warning (#1836) - (c0fd81a)
🚜 Refactor
  • (api) Replace plex-api package with internal implementation (#2335) - (f627a8e)
  • (jellyfin-scanner) Extend BaseScanner for jellyfin scanner (#2226) - (57d583e)
  • Rename blacklist to blocklist (#2157) - (33a5d9a)
📖 Documentation
  • (blog) Update authors description and add Discord link (#2405) - (e53c2a3)
  • (blog) Add Seerr release blog post (#2401) - (095784b)
  • (blog) Implement blog (#1935) - (82c5839)
  • (buildfromsource) Touch up path inconsistencies (#2184) - (c5fc31c)
  • (docker) Document available image tags and their usage (#2402) - (7cd3521)
  • (gen-docs) Add in packagemanager (#1937) - (764f7b4)
  • (notifications) Add more documentation for notifications (#1856) - (66d4cd6)
  • Remove warning about Seerr not being released (#2411) - (018e04a)
  • Add missing migration steps (#2376) - (a0a784b)
  • Temporarily make it clear seerr is not released (#2273) - (193d4dc)
  • Add webpush related troubleshooting steps (#2170) - (e3028c2)
  • Fix chown command for windows users (#2192) - (48ef298)
  • Update weblate links (#2168) - (b66b361)
  • Add migration guide (#2069) - (f4af6ed)
  • Update AI assistance notice link in pull request template (#2154) - (267450a)
  • Update Kubernetes installation documentation for Seerr (#2126) - (08800c7)
  • Revert docs to legacy docs temporarily (#2110) - (4980803)
  • Migrate third-parties documentation to a dedicated folder (#2068) - (48a61d8)
  • Add documentation for dockerhub (#2063) - (0dbbac0)
  • HAProxy documentation warning format (#2054) - (c4236dc)
  • Add haproxy configuration example (#2048) - (f3d8f0d)
  • Added guide for image verification (#2051) - (618563c)
  • Postgres 18 documentation (#2046) - (d95ccca)
  • Fix docusaurus config for seerr (#1991) - (3ff1c06)
  • Add comprehensive security policy (#1970) - (0217096)
  • Add a warning about the new mount point in Postgres (#1968) - (42eec24)
  • Rename kubernetes to state its an advanced step - (872fc45)
  • Update link to AI assistance policy in PR template (#1936) - (b10c57c)
  • Update weblate translations (#1934) - (efba847)
  • Add ale183 as a contributor for code (#1920) - (0b1ad8c)
  • Add sudo-kraken as a contributor for infra (#1919) - (fed772a)
  • Add AI assistance notice (#1917) - (f045274)
⚡ Performance
  • Add database indexes & minor frontend/backend improvements (#2396) - (a44a3b1)
🧪 Testing
  • (cypress) Added cypress cache and syntax fix (#1923) - (1143f88)
⚙️ Miscellaneous Tasks
  • (actions) Update github actions (#2346) - (127a91c)
  • (actions) Update github/codeql-action action to v4 (#2056) - (669facc)
  • (actions) Update github actions (#2022) - (a0893a5)
  • (bug.yml) Fixed link to the code of conduct in the bug.yml in issue templates (#2090) - (e781cd5)
  • (ci.yml,release.yml) Removes the need for 3rd party actions (#2018) - (4846c6a)
  • (duplicate-issues) Migrate to pnpm from npm (#2388) - (dbee2fd)
  • (helm) Prepare for release (#2189) - (d660a54)
  • (helm) Switch from Deployment to StatefulSet (#1901) - (1518dc0)
  • (helm) Bump jellyseerr to 2.7.3 (#1848) - (e8ec347)
  • (i18n) Update translations from Weblate (#2395) - (673f3f2)
  • (i18n) Rescue translations from #2384 (#2394) - (3cd6658)
  • (i18n) Update translations from Weblate (#2378) - (2dac679)
  • (issues) Add LLM-driven duplicate issue detection (#2381) - (0ffe3e8)
  • (issuetemplate) Add a checkbox to search for existing issues (#2255) - (66b4e2c)
  • (metadata-settings) Add autoDismiss to toast notifications (#2254) - (8bbe786)
  • (release) Disable verify attestations for now (#2420) - (92504b7)
  • (renovate) Fix trivy action tag (#1993) [skip-ci] - (393cb1a)
  • (workflow) Add i18n label check to avoid duplicate comments (#2390) - (df54fb9)
  • (workflow) Validate i18n locale files are synchronized (#2347) - (0d270ac)
  • (workflows) Remove redundant Hugging Face model cache (#2397) - (186998b)
  • Prepare 3.0.0 release - (8b0831c)
  • Upgrade PWA version (#2418) - (e503de3)
  • Prepare 3.0.0 release - (9822565)- Fix translate badge svg url (#2228) - (539d498)
  • Improve PR template (#2175) - (c3b9ea6)- Remove CHANGELOG.md (#2169) - (fb5196b)
  • Rebrand from Jellyseerr to Seerr across project (#2116) - (af083a3)
  • Update Docker Hub image references in CI workflows (#2153) - (939000f)
  • Bump cosign installer to v4.0.0 (#2127) - (91aa7d1)
  • Remove packages section in README (#2124) - (41bcbfe)
  • Combined workflows for ai and support (#2113) - (7d4b285)
  • Fix AI-generated workflow trigger (#2101) - (efc9b00)
  • Add a new workflow to close AI-generated PRs (#2098) - (e246215)
  • Update to the code of conduct link in bug report (#2091) - (843d05c)
  • Added helm cosign verification and renovate app workflow to bump chart versions (#2064) - (082ba3d)
  • Update to release workflow (#2047) - (8688645)
  • Use ghcr.io instead of dockerhub as default (#2045) - (9d174ba)
  • Merge upstream (#2024) - (34fcc5d)
  • Ci: update node hash to be multi arch sha index (#2023) - (f292d93)
  • Updating digests re pr-1998 (#2020) - (c29ba2c)
  • Update readme logo and add note to top (#2007) - (1213a1d)
  • Update renovate bot logic to remove pin from compose files and charts (#1999) - (5f46ee8)
  • Updated all workflows to be pinned to commit hashes ahead of renovate connection (#1989) - (2e6a19d)
  • Add renovate bot modular configuration (#1983) - (0af453e)
  • Rename Jellyseerr -> Seerr, part 2 (#1987) - (94a43ea)
  • Rename Jellyseerr -> Seerr, part 1 (#1984) - (2e2d2a0)
  • Updated cypress paths to stop noisy runs (#1986) - (e7aed5b)
  • Migrate helm-chart to the new org (#1985) - (de10335)
  • Fix seerr reference in workflow run (#1979) - (a3196fd)
  • Updated the release workflow names and introduced the trivy vuln scan wf (#1978) - (adcbeb9)
  • Remove unused files (#1966) - (166e240)
  • Add link checks to the docs (#1971) - (32ae099)
  • Updated the security policy discord links (#1976) - (500ced0)
  • Use seerr-core in codeowners (#1973) - (a53e180)
  • Remove snap package reference (#1965) - (9ca63ba)
  • Migrate compose postgres to compose v2 (#1962) - (e8e9fc1)
  • Cleanup repository reference (#1921) - (5c0a969)
  • Add stale bot (#1960) - (afeb34f)
  • Replace pnpm cache with custom cache (#1938) - (53dc802)
  • Fix pnpm version in Dockerfile (#1933) - (420e320)
  • Remove the with step from the pnpm setup steps (#1932) - (f427bc2)
  • Update to pnpm v10 (#1349) - (eec3319)
  • Updated support workflow concurrency and logic (#1926) - (e9db34e)
  • Tidy up workflows and implement a consistent style (#1905) - (f46a763)
◀️ Revert
  • (media-request) Revert #2316 explicitly setting the mediaId when creating request (#2372) - (8fc68c3)
New Contributors ❤️
  • @conlank made their first contribution
  • @InterN0te made their first contribution
  • @samohtxotom made their first contribution
  • @RolliePollie18 made their first contribution
  • @tirrorex made their first contribution
  • @Disparate2761 made their first contribution
  • @theGunner295 made their first contribution
  • @sudo-kraken made their first contribution
  • @TacoCake made their first contribution
  • @ofgrenudo made their first contribution
  • @tsposato made their first contribution
  • @ale183 made their first contribution
  • @sbogomolov made their first contribution
  • @tarasverq made their first contribution
View originalPermalink
How v3.0.0 went

v2.7.3

Fixed 7
  • Add missing user settings API docs
  • Make username field nullable in UserSettings API schema
  • Update Plex Watchlist URL
  • Handle invalid keywords gracefully in blacklist
  • Use event manager to get fresh media state for MEDIA_AVAILABLE notifications
  • Update delete media file logic to include is4k parameter
  • Initialize image proxies after the proxy is set up
2.7.3 (2025-08-14)
Bug Fixes
  • api: add missing user settings' api docs (#1820) (e52c631)
  • api: make username field nullable in UserSettings API schema (#1835) (c86ee0d)
  • api: update Plex Watchlist URL (#1847) (17d4f13)
  • blacklist: handle invalid keywords gracefully (#1815) (ca16864)
  • MediaRequestSubscriber: use event manager to get fresh media state for MEDIA_AVAILABLE notifications (#1825) (3292f11)
  • media: update delete media file logic to include is4k parameter (#1832) (e02ee24)
  • proxy: initialize image proxies after the proxy is set up (#1794) (e98f31e), closes #1787

This release is also available on:

  • v2.7.3
View originalPermalink
How v2.7.3 went

v2.7.2

Fixed 1
  • Modify the registration of the axios interceptors in proxy
2.7.2 (2025-07-21)
Bug Fixes
  • proxy: modify the registration of the axios interceptors (#1791) (75a7279), closes #1787

This release is also available on:

  • v2.7.2
View originalPermalink
How v2.7.2 went
View all

Discussion