From ccd3120c06d23ffa99e637073b37e1db42343c96 Mon Sep 17 00:00:00 2001
From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
Date: Sun, 7 Jun 2026 11:47:30 -0500
Subject: [PATCH 1/8] docs(sonarr): audit v4 wiki pages against main-branch
source code
Cross-referenced every documented option, setting, env var, integration,
and health check against the current Sonarr v4 main-branch source. Edits
made to 15 pages.
Key categories of change:
- environment-variables.md: corrected config-key names to match the
literal strings inside ConfigFileProvider.cs GetValueX() calls; added
new options present in code (e.g. TrustCgnatIpAddresses).
- system.md: removed 6 obsolete health checks (.NET Framework / Mono /
SQLite version / Mono Legacy TLS) no longer present in v4; added the
health checks newly present in code (ApiKeyValidationCheck,
IndexerDownloadClientCheck, NotificationStatusCheck, RecyclingBinCheck,
MetadataCheck deprecation, etc.); added missing anchor IDs matching
HealthCheck.WikiUrlFragment.
- custom-scripts.md: cross-referenced per-event Sonarr_* env vars
against CustomScript.cs override methods.
- supported.md: cross-referenced indexer / download client /
notification / import list / metadata class names against current
source tree.
WikiJS frontmatter preserved on every page. date field updated to
2026-06-07T00:00:00.000Z.
---
sonarr/calendar.md | 4 +-
sonarr/contributing.md | 6 +-
sonarr/custom-scripts.md | 254 +++++++++++++++++++++------
sonarr/environment-variables.md | 5 +-
sonarr/faq-v4.md | 6 +-
sonarr/faq.md | 6 +-
sonarr/installation/freebsd.md | 2 +-
sonarr/installation/reverse-proxy.md | 4 +-
sonarr/library.md | 10 +-
sonarr/postgres-setup.md | 4 +-
sonarr/settings.md | 54 ++++--
sonarr/supported.md | 36 +++-
sonarr/system.md | 143 ++++++++-------
sonarr/troubleshooting.md | 4 +-
sonarr/wanted.md | 15 +-
15 files changed, 391 insertions(+), 162 deletions(-)
diff --git a/sonarr/calendar.md b/sonarr/calendar.md
index 11ff2681b..7c4eaded6 100644
--- a/sonarr/calendar.md
+++ b/sonarr/calendar.md
@@ -2,7 +2,7 @@
title: Sonarr Calendar
description: View upcoming and aired episodes in a calendar format for better scheduling
published: true
-date: 2022-04-26T01:49:26.770Z
+date: 2026-06-07T00:00:00.000Z
tags: sonarr, calendar, schedule, episodes, planning
editor: markdown
dateCreated: 2021-06-11T23:31:36.392Z
@@ -14,7 +14,7 @@ The calendar shows you recently aired episodes, as well as upcoming episodes.
# iCal Feed
-- Sonarr can provide your calendar as an iCal feed. This will contain the previous [7 days](https://github.com/Sonarr/Sonarr/blob/22f044844c33187450dcc2d6b329ad3e1d241e74/src/NzbDrone.Api/Calendar/CalendarFeedModule.cs#L35) and the next [28 days](https://github.com/Sonarr/Sonarr/blob/22f044844c33187450dcc2d6b329ad3e1d241e74/src/NzbDrone.Api/Calendar/CalendarFeedModule.cs#L36)
+- Sonarr can provide your calendar as an iCal feed. This will contain the previous [7 days](https://github.com/Sonarr/Sonarr/blob/main/src/Sonarr.Api.V3/Calendar/CalendarFeedController.cs) and the next [28 days](https://github.com/Sonarr/Sonarr/blob/main/src/Sonarr.Api.V3/Calendar/CalendarFeedController.cs)
> Google Calendar has internal issues that results in it no longer updating. This is a Google issue and not a Sonarr issue. It can often be resolved by removing and re-adding the calendar.
{.is-warning}
diff --git a/sonarr/contributing.md b/sonarr/contributing.md
index dc673acd2..1ed25358b 100644
--- a/sonarr/contributing.md
+++ b/sonarr/contributing.md
@@ -2,7 +2,7 @@
title: Sonarr Contributing
description: Guide for contributing to Sonarr development including setup, building, testing, and submitting changes
published: true
-date: 2023-09-03T13:55:05.394Z
+date: 2026-06-07T00:00:00.000Z
tags: sonarr, contributing, development, guide, setup
editor: markdown
dateCreated: 2021-06-11T23:10:04.820Z
@@ -18,7 +18,7 @@ Setup guides, [FAQ](/sonarr/faq), the more information we have on the [wiki](htt
# Development
-Sonarr is written in C# (backend) and JS (frontend). The backend is built on the .NET8 framework, while the frontend utilizes Reactjs.
+Sonarr is written in C# (backend) and JS (frontend). The backend is built on the .NET6 framework, while the frontend utilizes Reactjs.
## Tools required
@@ -162,7 +162,7 @@ Adding translations to Sonarr requires two steps
## Adding Translation Strings in Code
-The English translation, `src/NzbDrone.Core/Localization/en.json`, serves as the source for all other translations and is managed on GitHub repo. When adding a new string to either the UI or backend a key must also be added to `en.json` along with the default value in English. This key may then be consumed as follows:
+The English translation, `src/NzbDrone.Core/Localization/Core/en.json`, serves as the source for all other translations and is managed on GitHub repo. When adding a new string to either the UI or backend a key must also be added to `en.json` along with the default value in English. This key may then be consumed as follows:
> PRs for translation of log messages will not be accepted
{.is-warning}
diff --git a/sonarr/custom-scripts.md b/sonarr/custom-scripts.md
index 73580ba52..10523753a 100644
--- a/sonarr/custom-scripts.md
+++ b/sonarr/custom-scripts.md
@@ -2,7 +2,7 @@
title: Sonarr Custom Scripts
description: Guide for creating and implementing custom scripts for automation and integration
published: true
-date: 2022-06-13T15:52:03.477Z
+date: 2026-06-07T00:00:00.000Z
tags: sonarr, scripts, automation, custom, integration, hooks, api
editor: markdown
dateCreated: 2021-06-16T15:55:53.999Z
@@ -29,17 +29,19 @@ Note that the following will only be logged for custom scripts:
| Environment Variable | Details |
| --------------------------------------- | -------------------------------------------------------------------------------------------- |
| `sonarr_eventtype` | `Grab` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
| `sonarr_series_id` | Internal ID of the series |
| `sonarr_series_title` | Title of the series |
| `sonarr_series_titleslug` | Common formatted title slug of the series |
-| `sonarr_series_tmdbid` | TMDB ID for the series |
| `sonarr_series_tvdbid` | TVDB ID for the series |
| `sonarr_series_tvmazeid` | TVMaze ID for the series |
+| `sonarr_series_tmdbid` | TMDB ID for the series |
| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
| `sonarr_series_year` | Year of the series |
-| `sonarr_series_genres` | `\|`-delimited list of genres |
| `sonarr_series_originallanguage` | Original language of the series |
+| `sonarr_series_genres` | `\|`-delimited list of genres |
| `sonarr_series_tags` | `\|`-delimited list of tags |
| `sonarr_release_episodecount` | Number of episodes in the release |
| `sonarr_release_seasonnumber` | Season number from release |
@@ -62,115 +64,255 @@ Note that the following will only be logged for custom scripts:
| `sonarr_download_client` | Download client |
| `sonarr_download_client_type` | Download client type |
| `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
-| `sonarr_instance_name` | Instance name of the Sonarr installation |
-| `sonarr_applicationurl` | URL of the Sonarr application |
## On Import/On Upgrade
+| Environment Variable | Details |
+| ------------------------------------------------- | -------------------------------------------------------------------------------------------- |
+| `sonarr_eventtype` | `Download` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
+| `sonarr_isupgrade` | `True` when an existing file is upgraded, `False` otherwise |
+| `sonarr_series_id` | Internal ID of the series |
+| `sonarr_series_title` | Title of the series |
+| `sonarr_series_titleslug` | Common formatted title slug of the series |
+| `sonarr_series_path` | Full path to the series |
+| `sonarr_series_tvdbid` | TVDB ID for the series |
+| `sonarr_series_tvmazeid` | TVMaze ID for the series |
+| `sonarr_series_tmdbid` | TMDB ID for the series |
+| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
+| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
+| `sonarr_series_year` | Year of the series |
+| `sonarr_series_originallanguage` | Original language of the series |
+| `sonarr_series_genres` | `\|`-delimited list of genres |
+| `sonarr_series_tags` | `\|`-delimited list of tags |
+| `sonarr_episodefile_id` | Internal ID of the episode file |
+| `sonarr_episodefile_episodecount` | Number of episodes in the file |
+| `sonarr_episodefile_relativepath` | Path to the episode file, relative to the series path |
+| `sonarr_episodefile_path` | Full path to the episode file |
+| `sonarr_episodefile_episodeids` | Internal ID(s) of the episode file |
+| `sonarr_episodefile_seasonnumber` | Season number of episode file |
+| `sonarr_episodefile_episodenumbers` | Comma-delimited list of episode numbers |
+| `sonarr_episodefile_episodeairdates` | Comma-delimited list of air dates from original network |
+| `sonarr_episodefile_episodeairdatesutc` | Comma-delimited list of air dates in UTC |
+| `sonarr_episodefile_episodetitles` | `\|`-delimited list of episode titles |
+| `sonarr_episodefile_episodeoverviews` | `\|`-delimited list of episode overview descriptions |
+| `sonarr_episodefile_quality` | Quality name of the episode file, as detected by Sonarr |
+| `sonarr_episodefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions |
+| `sonarr_episodefile_releasegroup` | Release group (empty if unknown) |
+| `sonarr_episodefile_scenename` | Original release name (empty if unknown) |
+| `sonarr_episodefile_sourcepath` | Full path to the imported episode file |
+| `sonarr_episodefile_sourcefolder` | Full path to the folder the episode file was imported from |
+| `sonarr_episodefile_mediainfo_audiochannels` | Number of audio channels |
+| `sonarr_episodefile_mediainfo_audiocodec` | Audio codec of the episode file |
+| `sonarr_episodefile_mediainfo_audiolanguages` | Audio languages of the episode file (distinct, space/slash-delimited) |
+| `sonarr_episodefile_mediainfo_languages` | Audio languages of the episode file (space/slash-delimited) |
+| `sonarr_episodefile_mediainfo_height` | Video height of the episode file |
+| `sonarr_episodefile_mediainfo_width` | Video width of the episode file |
+| `sonarr_episodefile_mediainfo_subtitles` | Subtitle languages of the episode file (space/slash-delimited) |
+| `sonarr_episodefile_mediainfo_videocodec` | Video codec of the episode file |
+| `sonarr_episodefile_mediainfo_videodynamicrangetype` | Dynamic range type of the episode file (e.g. `HDR`, `SDR`) |
+| `sonarr_episodefile_customformat` | `\|`-delimited list of custom formats |
+| `sonarr_episodefile_customformatscore` | Numerical score of the custom formats of the episode file |
+| `sonarr_download_client` | Download client |
+| `sonarr_download_client_type` | Download client type |
+| `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
+| `sonarr_release_indexer` | Indexer from which the release was grabbed |
+| `sonarr_release_size` | Size of the release, as reported by the indexer (in bytes) |
+| `sonarr_release_title` | Torrent/NZB title |
+| `sonarr_release_releasetype` | Release type (`SingleEpisode`, `SeasonPack`) |
+| `sonarr_deletedrelativepaths` | `\|`-delimited list of files that were deleted to import this file |
+| `sonarr_deletedpaths` | `\|`-delimited list of full paths of files that were deleted to import this file |
+| `sonarr_deleteddateadded` | `\|`-delimited list of dates the deleted files were added (only set when upgrading) |
+| `sonarr_deletedrecyclebinpaths` | `\|`-delimited list of recycle bin paths for deleted files (only set when upgrading) |
+
+## On Import Complete
+
| Environment Variable | Details |
| --------------------------------------- | -------------------------------------------------------------------------------------------- |
| `sonarr_eventtype` | `Download` |
-| `sonarr_isupgrade` | `True` when an existing file is upgraded, `False` otherwise |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
| `sonarr_series_id` | Internal ID of the series |
| `sonarr_series_title` | Title of the series |
+| `sonarr_series_titleslug` | Common formatted title slug of the series |
| `sonarr_series_path` | Full path to the series |
| `sonarr_series_tvdbid` | TVDB ID for the series |
| `sonarr_series_tvmazeid` | TVMaze ID for the series |
+| `sonarr_series_tmdbid` | TMDB ID for the series |
| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
| `sonarr_series_year` | Year of the series |
-| `sonarr_episodefile_id` | Internal ID of the episode file |
-| `sonarr_episodefile_episodecount` | Number of episodes in the file |
-| `sonarr_episodefile_relativepath` | Path to the episode file, relative to the series path |
-| `sonarr_episodefile_path` | Full path to the episode file |
-| `sonarr_episodefile_episodeids` | Internal ID(s) of the episode file |
-| `sonarr_episodefile_seasonnumber` | Season number of episode file |
+| `sonarr_series_originallanguage` | Original language of the series |
+| `sonarr_series_genres` | `\|`-delimited list of genres |
+| `sonarr_series_tags` | `\|`-delimited list of tags |
+| `sonarr_episodefile_ids` | `\|`-delimited list of internal IDs of the imported episode files |
+| `sonarr_episodefile_count` | Number of episode files imported |
+| `sonarr_episodefile_relativepaths` | `\|`-delimited list of relative paths of the episode files |
+| `sonarr_episodefile_paths` | `\|`-delimited list of full paths of the episode files |
+| `sonarr_episodefile_episodeids` | Comma-delimited list of internal episode IDs |
+| `sonarr_episodefile_seasonnumber` | Season number of the episodes |
| `sonarr_episodefile_episodenumbers` | Comma-delimited list of episode numbers |
| `sonarr_episodefile_episodeairdates` | Comma-delimited list of air dates from original network |
| `sonarr_episodefile_episodeairdatesutc` | Comma-delimited list of air dates in UTC |
| `sonarr_episodefile_episodetitles` | `\|`-delimited list of episode titles |
-| `sonarr_episodefile_quality` | Quality name of the episode file, as detected by Sonarr |
-| `sonarr_episodefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions |
-| `sonarr_episodefile_releasegroup` | Release group (empty if unknown) |
-| `sonarr_episodefile_scenename` | Original release name (empty if unknown) |
-| `sonarr_episodefile_sourcepath` | Full path to the imported episode file |
-| `sonarr_episodefile_sourcefolder` | Full path to the folder the episode file was imported from |
+| `sonarr_episodefile_episodeoverviews` | `\|`-delimited list of episode overview descriptions |
+| `sonarr_episodefile_qualities` | `\|`-delimited list of quality names for each episode file |
+| `sonarr_episodefile_qualityversions` | `\|`-delimited list of quality versions for each episode file |
+| `sonarr_episodefile_releasegroups` | `\|`-delimited list of release groups for each episode file |
+| `sonarr_episodefile_scenenames` | `\|`-delimited list of original release names for each episode file |
| `sonarr_download_client` | Download client |
+| `sonarr_download_client_type` | Download client type |
| `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
-| `sonarr_deletedrelativepaths` | `\|`-delimited list of files that were deleted to import this file |
-| `sonarr_deletedpaths` | `\|`-delimited list of full paths of files that were deleted to import this file |
+| `sonarr_release_group` | Release group of the import |
+| `sonarr_release_quality` | Quality name of the release |
+| `sonarr_release_qualityversion` | Quality version of the release |
+| `sonarr_release_indexer` | Indexer from which the release was grabbed |
+| `sonarr_release_size` | Size of the release, as reported by the indexer (in bytes) |
+| `sonarr_release_title` | Torrent/NZB title |
+| `sonarr_release_releasetype` | Release type (`SingleEpisode`, `SeasonPack`) |
+| `sonarr_sourcepath` | Full path to the source of the import |
+| `sonarr_sourcefolder` | Full path to the folder containing the source of the import |
+| `sonarr_destinationpath` | Full path to the destination of the import |
+| `sonarr_destinationfolder` | Full path to the destination folder of the import |
## On Rename
-| Environment Variable | Details |
-| ------------------------ | ---------------------------------------------------- |
-| `sonarr_eventtype` | `Rename` |
-| `sonarr_series_id` | Internal ID of the series |
-| `sonarr_series_title` | Title of the series |
-| `sonarr_series_path` | Full path to the series |
-| `sonarr_series_tvdbid` | TVDB ID for the series |
-| `sonarr_series_tvmazeid` | TVMaze ID for the series |
-| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
-| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
-| `sonarr_series_year` | Year of the series |
+| Environment Variable | Details |
+| ----------------------------------------- | ------------------------------------------------------------ |
+| `sonarr_eventtype` | `Rename` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
+| `sonarr_series_id` | Internal ID of the series |
+| `sonarr_series_title` | Title of the series |
+| `sonarr_series_titleslug` | Common formatted title slug of the series |
+| `sonarr_series_path` | Full path to the series |
+| `sonarr_series_tvdbid` | TVDB ID for the series |
+| `sonarr_series_tvmazeid` | TVMaze ID for the series |
+| `sonarr_series_tmdbid` | TMDB ID for the series |
+| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
+| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
+| `sonarr_series_year` | Year of the series |
+| `sonarr_series_originallanguage` | Original language of the series |
+| `sonarr_series_genres` | `\|`-delimited list of genres |
+| `sonarr_series_tags` | `\|`-delimited list of tags |
+| `sonarr_episodefile_ids` | Comma-delimited list of internal IDs of the renamed files |
+| `sonarr_episodefile_relativepaths` | `\|`-delimited list of new relative paths of renamed files |
+| `sonarr_episodefile_paths` | `\|`-delimited list of new full paths of renamed files |
+| `sonarr_episodefile_previousrelativepaths`| `\|`-delimited list of old relative paths of renamed files |
+| `sonarr_episodefile_previouspaths` | `\|`-delimited list of old full paths of renamed files |
## On Episode File Delete
| Environment Variable | Details |
| --------------------------------------- | -------------------------------------------------------------------------------- |
| `sonarr_eventtype` | `EpisodeFileDelete` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
+| `sonarr_episodefile_deletereason` | Reason for the deletion (`MissingFromDisk`, `Manual`, `Upgrade`, `NoLinkedEpisodes`) |
| `sonarr_series_id` | Internal ID of the series |
| `sonarr_series_title` | Title of the series |
+| `sonarr_series_titleslug` | Common formatted title slug of the series |
| `sonarr_series_path` | Full path to the series |
| `sonarr_series_tvdbid` | TVDB ID for the series |
| `sonarr_series_tvmazeid` | TVMaze ID for the series |
+| `sonarr_series_tmdbid` | TMDB ID for the series |
| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
| `sonarr_series_year` | Year of the series |
+| `sonarr_series_originallanguage` | Original language of the series |
+| `sonarr_series_genres` | `\|`-delimited list of genres |
+| `sonarr_series_tags` | `\|`-delimited list of tags |
| `sonarr_episodefile_id` | Internal ID of the episode file |
| `sonarr_episodefile_episodecount` | Number of episodes in the file |
| `sonarr_episodefile_relativepath` | Path to the episode file, relative to the series' path |
-| `sonarr_episodefile_paths` | Full path to the episode file |
+| `sonarr_episodefile_path` | Full path to the episode file |
| `sonarr_episodefile_episodeids` | Internal ID(s) of the episode file |
| `sonarr_episodefile_seasonnumber` | Season number of episode file |
| `sonarr_episodefile_episodenumbers` | Comma-delimited list of episode numbers |
| `sonarr_episodefile_episodeairdates` | Comma-delimited list of air dates from original network |
| `sonarr_episodefile_episodeairdatesutc` | Comma-delimited list of air dates in UTC |
| `sonarr_episodefile_episodetitles` | `\|`-delimited list of episode titles |
+| `sonarr_episodefile_episodeoverviews` | `\|`-delimited list of episode overview descriptions |
| `sonarr_episodefile_quality` | Quality name of the episode file, as detected by Sonarr |
| `sonarr_episodefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions |
| `sonarr_episodefile_releasegroup` | Release group (empty if unknown) |
| `sonarr_episodefile_scenename` | Original release name (empty if unknown) |
+## On Series Add
+
+| Environment Variable | Details |
+| -------------------------------- | ------------------------------------------------------------ |
+| `sonarr_eventtype` | `SeriesAdd` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
+| `sonarr_series_id` | Internal ID of the series |
+| `sonarr_series_title` | Title of the series |
+| `sonarr_series_titleslug` | Common formatted title slug of the series |
+| `sonarr_series_path` | Full path to the series |
+| `sonarr_series_tvdbid` | TVDB ID for the series |
+| `sonarr_series_tvmazeid` | TVMaze ID for the series |
+| `sonarr_series_tmdbid` | TMDB ID for the series |
+| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
+| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
+| `sonarr_series_year` | Year of the series |
+| `sonarr_series_originallanguage` | Original language of the series |
+| `sonarr_series_genres` | `\|`-delimited list of genres |
+| `sonarr_series_tags` | `\|`-delimited list of tags |
+
## On Series Delete
-| Environment Variable | Details |
-| ---------------------------- | ------------------------------------------------------------------------ |
-| `sonarr_eventtype` | `SeriesDelete` |
-| `sonarr_series_id` | Internal ID of the series |
-| `sonarr_series_title` | Title of the series |
-| `sonarr_series_path` | Full path to the series |
-| `sonarr_series_tvdbid` | TVDB ID for the series |
-| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
-| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
-| `sonarr_series_year` | Year of the series |
-| `sonarr_series_deletedfiles` | `True` when the delete files option has been selected, otherwise `False` |
+| Environment Variable | Details |
+| -------------------------------- | ------------------------------------------------------------------------ |
+| `sonarr_eventtype` | `SeriesDelete` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
+| `sonarr_series_id` | Internal ID of the series |
+| `sonarr_series_title` | Title of the series |
+| `sonarr_series_titleslug` | Common formatted title slug of the series |
+| `sonarr_series_path` | Full path to the series |
+| `sonarr_series_tvdbid` | TVDB ID for the series |
+| `sonarr_series_tvmazeid` | TVMaze ID for the series |
+| `sonarr_series_tmdbid` | TMDB ID for the series |
+| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) |
+| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
+| `sonarr_series_year` | Year of the series |
+| `sonarr_series_originallanguage` | Original language of the series |
+| `sonarr_series_genres` | `\|`-delimited list of genres |
+| `sonarr_series_tags` | `\|`-delimited list of tags |
+| `sonarr_series_deletedfiles` | `True` when the delete files option has been selected, otherwise `False` |
## On Health Issue
| Environment Variable | Details |
| ----------------------------- | ------------------------------------------------------------ |
| `sonarr_eventtype` | `HealthIssue` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
| `sonarr_health_issue_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) |
| `sonarr_health_issue_message` | Message from the health issue |
| `sonarr_health_issue_type` | Area that failed and triggered the health issue |
| `sonarr_health_issue_wiki` | Wiki URL (empty if does not exist) |
+## On Health Restored
+
+| Environment Variable | Details |
+| --------------------------------- | ------------------------------------------------------------ |
+| `sonarr_eventtype` | `HealthRestored` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
+| `sonarr_health_restored_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) |
+| `sonarr_health_restored_message` | Message from the health issue |
+| `sonarr_health_restored_type` | Area that previously failed and triggered the health issue |
+| `sonarr_health_restored_wiki` | Wiki URL (empty if does not exist) |
+
## On Application Update
| Environment Variable | Details |
| ------------------------------- | ------------------------------------ |
| `sonarr_eventtype` | `ApplicationUpdate` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
| `sonarr_update_message` | Message from Update |
| `sonarr_update_newversion` | Version Sonarr updated to (string) |
| `sonarr_update_previousversion` | Version Sonarr updated from (string) |
@@ -180,26 +322,26 @@ Note that the following will only be logged for custom scripts:
| Environment Variable | Details |
| -------------------------------- | -------------------------------------------------------------------------------------------- |
| `sonarr_eventtype` | `ManualInteractionRequired` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
| `sonarr_applicationurl` | URL of the application |
-| `sonarr_download_client` | Download client name |
-| `sonarr_download_client_type` | Download client type |
-| `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
-| `sonarr_download_size` | Download size |
-| `sonarr_download_title` | Download title |
-| `sonarr_instancename` | Instance name |
-| `sonarr_series_genres` | Genres of the series |
| `sonarr_series_id` | Internal ID of the series |
-| `sonarr_series_imdbid` | IMDB ID of the series (empty if unknown) |
-| `sonarr_series_originallanguage` | Original language of the series |
-| `sonarr_series_path` | Full path to the series |
-| `sonarr_series_tags` | Tags of the series |
| `sonarr_series_title` | Title of the series |
| `sonarr_series_titleslug` | Common formatted title slug of the series |
-| `sonarr_series_tmdbid` | TMDB ID of the series |
+| `sonarr_series_path` | Full path to the series |
| `sonarr_series_tvdbid` | TVDB ID of the series |
| `sonarr_series_tvmazeid` | TVMaze ID of the series |
+| `sonarr_series_tmdbid` | TMDB ID of the series |
+| `sonarr_series_imdbid` | IMDB ID of the series (empty if unknown) |
| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) |
| `sonarr_series_year` | Year of the series |
+| `sonarr_series_originallanguage` | Original language of the series |
+| `sonarr_series_genres` | Genres of the series |
+| `sonarr_series_tags` | Tags of the series |
+| `sonarr_download_client` | Download client name |
+| `sonarr_download_client_type` | Download client type |
+| `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
+| `sonarr_download_size` | Download size |
+| `sonarr_download_title` | Download title |
## On Test
@@ -208,3 +350,5 @@ When adding the script to Sonarr and clicking 'Test,' the script will be invoked
| Environment Variable | Details |
| -------------------- | ------- |
| `sonarr_eventtype` | `Test` |
+| `sonarr_instancename` | Instance name of the Sonarr installation |
+| `sonarr_applicationurl` | URL of the Sonarr application |
diff --git a/sonarr/environment-variables.md b/sonarr/environment-variables.md
index 628aab1b2..43e17ef0a 100644
--- a/sonarr/environment-variables.md
+++ b/sonarr/environment-variables.md
@@ -2,7 +2,7 @@
title: Sonarr Environment Variables
description: Complete guide to Sonarr environment variables for configuration management including Docker, database, authentication, and server settings
published: true
-date: 2025-12-16T17:03:24.201Z
+date: 2026-06-07T00:00:00.000Z
tags: sonarr, docker, installation, configuration, postgres, environment-variables
editor: markdown
dateCreated: 2025-09-06T22:34:56.401Z
@@ -36,6 +36,7 @@ The config namespaces are shared between all Servarr apps and correspond to the
| `AuthenticationEnabled` | `AUTH` | `ENABLED` | `SONARR__AUTH__ENABLED` |
| `AuthenticationMethod` | `AUTH` | `METHOD` | `SONARR__AUTH__METHOD` |
| `AuthenticationRequired` | `AUTH` | `REQUIRED` | `SONARR__AUTH__REQUIRED` |
+| `TrustCgnatIpAddresses` | `AUTH` | `TRUSTCGNATIPADDRESSES` | `SONARR__AUTH__TRUSTCGNATIPADDRESSES` |
| `LogLevel` | `LOG` | `LEVEL` | `SONARR__LOG__LEVEL` |
| `FilterSentryEvents` | `LOG` | `FILTERSENTRYEVENTS` | `SONARR__LOG__FILTERSENTRYEVENTS` |
| `LogRotate` | `LOG` | `ROTATE` | `SONARR__LOG__ROTATE` |
@@ -47,7 +48,7 @@ The config namespaces are shared between all Servarr apps and correspond to the
| `SyslogServer` | `LOG` | `SYSLOGSERVER` | `SONARR__LOG__SYSLOGSERVER` |
| `SyslogPort` | `LOG` | `SYSLOGPORT` | `SONARR__LOG__SYSLOGPORT` |
| `SyslogLevel` | `LOG` | `SYSLOGLEVEL` | `SONARR__LOG__SYSLOGLEVEL` |
-| `DbEnabled` | `LOG` | `DBENABLED` | `SONARR__LOG__DBENABLED` |
+| `LogDbEnabled` | `LOG` | `DBENABLED` | `SONARR__LOG__DBENABLED` |
| `PostgresHost` | `POSTGRES` | `HOST` | `SONARR__POSTGRES__HOST` |
| `PostgresPort` | `POSTGRES` | `PORT` | `SONARR__POSTGRES__PORT` |
| `PostgresUser` | `POSTGRES` | `USER` | `SONARR__POSTGRES__USER` |
diff --git a/sonarr/faq-v4.md b/sonarr/faq-v4.md
index 831f49e13..992a68629 100644
--- a/sonarr/faq-v4.md
+++ b/sonarr/faq-v4.md
@@ -2,7 +2,7 @@
title: Sonarr v4 FAQ
description: Sonarr v4 FAQ
published: true
-date: 2025-03-30T15:46:47.811Z
+date: 2026-06-07T00:00:00.000Z
tags:
editor: markdown
dateCreated: 2022-11-25T14:02:10.493Z
@@ -52,8 +52,8 @@ As of Sonarr v4, Authentication is Mandatory.
### Authentication Required
- If you do not expose the app externally and/or do not wish to have auth required for local (e.g. LAN) access then change in Settings => General Security => Authentication Required to `Disabled For Local Addresses`
- - The config file equivalent of this is `DisabledForLocalAddresses`
-- `Enabled` is also a valid value
+ - The config file equivalent of this is `DisabledForLocalAddresses`
+- `Enabled` is also a valid value
## Preferred Words to Custom Formats Migration
diff --git a/sonarr/faq.md b/sonarr/faq.md
index f0286df93..e7517c01d 100644
--- a/sonarr/faq.md
+++ b/sonarr/faq.md
@@ -2,7 +2,7 @@
title: Sonarr FAQ
description: Sonarr Frequently Asked Questions
published: true
-date: 2025-10-31T12:30:19.410Z
+date: 2026-06-07T00:00:00.000Z
tags:
editor: markdown
dateCreated: 2025-10-31T12:02:16.100Z
@@ -15,7 +15,7 @@ dateCreated: 2025-10-31T12:02:16.100Z
## How does Sonarr find episodes
-- Sonarr does *not* regularly search for episode files that are missing or have not met their quality goals. Instead, it fairly frequently queries your indexers and trackers for *all* the newly posted episodes/newly uploaded releases, then compares that with its list of episodes that are missing or need to be upgraded. Any matches are downloaded. This lets Sonarr cover a library of *any size* with just 24-100 queries per day (RSS interval of 15-60 minutes). If you understand this, you will realize that it only covers the *future* though.
+- Sonarr does *not* regularly search for episode files that are missing or have not met their quality goals. Instead, it fairly frequently queries your indexers and trackers for *all* the newly posted episodes/newly uploaded releases, then compares that with its list of episodes that are missing or need to be upgraded. Any matches are downloaded. This lets Sonarr cover a library of *any size* with just 10-144 queries per day (RSS interval of 10-120 minutes). If you understand this, you will realize that it only covers the *future* though.
- So how do you deal with the present and past? When you're adding a show, you will need to set the correct path, profile and monitoring status then use the Start search for missing checkbox. If the show has had no episodes and hasn't been released yet, you do not need to initiate a search.
- Put another way, Sonarr will only find releases that are newly uploaded to your indexers. It will not actively try to find releases uploaded in the past.
- If you've already added the show, but now you want to search for it, you have a few choices. You can go to the show's page and use the search button, which will do a search and then automatically pick episode(s). You can search individual episodes or seasons automatically or manually. Or you can go to the [Wanted](/sonarr/wanted) tab and search from there.
@@ -688,7 +688,7 @@ First, make sure you read and understand the section above called ["How does Son
## Forced Authentication
-- In Sonarr v4 (beta) authentication is mandatory. Please see the [Sonarr v4 FAQ - Forced Authentication](/sonarr/faq-v4#forced-authentication) for details
+- In Sonarr v4 authentication is mandatory. Please see the [Sonarr v4 FAQ - Forced Authentication](/sonarr/faq-v4#forced-authentication) for details
## Removing Completed Torrents
diff --git a/sonarr/installation/freebsd.md b/sonarr/installation/freebsd.md
index 6f13aee22..9aae08c27 100644
--- a/sonarr/installation/freebsd.md
+++ b/sonarr/installation/freebsd.md
@@ -2,7 +2,7 @@
title: Sonarr FreeBSD Installation
description: FreeBSD installation guide for Sonarr
published: true
-date: 2023-07-03T20:23:52.657Z
+date: 2026-06-07T00:00:00.000Z
tags: sonarr
editor: markdown
dateCreated: 2021-07-10T16:07:37.425Z
diff --git a/sonarr/installation/reverse-proxy.md b/sonarr/installation/reverse-proxy.md
index 7fb3f150f..99d37aabb 100644
--- a/sonarr/installation/reverse-proxy.md
+++ b/sonarr/installation/reverse-proxy.md
@@ -9,7 +9,7 @@ Sample config examples for configuring Sonarr to be accessible from the outside
Add the following configuration to `nginx.conf` located in the root of your Nginx configuration. The code block should be added inside the `server context`. [Full example of a typical Nginx configuration](https://www.nginx.com/resources/wiki/start/topics/examples/full/)
-> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` or `proxy_set_header Host $http_host` {.is-warning}
+> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning}
```nginx
location ^~ /sonarr {
@@ -55,7 +55,7 @@ By default Nginx includes the `sites-enabled` folder. You can check this in `ngi
> For this configuration it is recommended to set baseurl to '' (empty). This configuration assumes you are using the default `8989` and Sonarr is accessible on the localhost (127.0.0.1). For this configuration the subdomain `sonarr` is chosen (line 5). {.is-info}
-> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` or `proxy_set_header Host $http_host` {.is-warning}
+> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning}
```nginx
server {
diff --git a/sonarr/library.md b/sonarr/library.md
index 313ad9a94..5f1b83b1f 100644
--- a/sonarr/library.md
+++ b/sonarr/library.md
@@ -2,7 +2,7 @@
title: Sonarr Library
description: Manage your TV series collection, monitor status, and organize media in Sonarr
published: true
-date: 2022-10-28T17:18:11.116Z
+date: 2026-06-07T00:00:00.000Z
tags: sonarr, library, series, management, collection, organization
editor: markdown
dateCreated: 2021-06-11T23:31:01.289Z
@@ -25,9 +25,13 @@ The add new feature allows you to add a new series for Sonarr to monitor and dow
- All Episodes - Monitor all episodes except specials
- Future Episodes - Monitor episodes that have not aired yet
- Missing Episodes - Monitor episodes that do not have files or have not aired yet
- - Existing Episodes - Monitor episodes that have files
+ - Existing Episodes - Monitor episodes that have files or have not aired yet
+ - Recent Episodes - Monitor episodes aired within the last 90 days and future episodes
+ - Pilot Episode - Only monitor the first episode of the first season
- First Season - Monitor all episodes of the first season; all other seasons will be ignored
- - Latest Season - Monitor all episodes of the latest season and future seasons
+ - Last Season - Monitor all episodes of the last season
+ - Monitor Specials - Monitor all special episodes without changing the monitored status of other episodes
+ - Unmonitor Specials - Unmonitor all special episodes without changing the monitored status of other episodes
- None - No episodes will be monitored
- Quality Profile - The [quality profile](/sonarr/settings#quality-profiles) to use for this series
- Series Type - Which Series Type to use for this series; this changes how searches occur [See the FAQ entry for more info](/sonarr/faq#whats-the-different-series-types)
diff --git a/sonarr/postgres-setup.md b/sonarr/postgres-setup.md
index 3b95b06a7..eb4579551 100644
--- a/sonarr/postgres-setup.md
+++ b/sonarr/postgres-setup.md
@@ -2,7 +2,7 @@
title: Sonarr Configuring PostgreSQL Database
description: Configuring Sonarr with a Postgres Database
published: true
-date: 2025-05-29T21:37:27.122Z
+date: 2026-06-07T00:00:00.000Z
tags: database, postgres, postgresql, setup, configuration, sonarr
editor: markdown
dateCreated: 2023-08-12T12:26:25.094Z
@@ -136,6 +136,7 @@ DELETE FROM "ScheduledTasks";
select setval('public."ExtraFiles_Id_seq"',(SELECT MAX("Id")+1 FROM "ExtraFiles"));
select setval('public."History_Id_seq"',(SELECT MAX("Id")+1 FROM "History"));
select setval('public."ImportListExclusions_Id_seq"',(SELECT MAX("Id")+1 FROM "ImportListExclusions"));
+ select setval('public."ImportListItems_Id_seq"',(SELECT MAX("Id")+1 FROM "ImportListItems"));
select setval('public."ImportListStatus_Id_seq"',(SELECT MAX("Id")+1 FROM "ImportListStatus"));
select setval('public."ImportLists_Id_seq"',(SELECT MAX("Id")+1 FROM "ImportLists"));
select setval('public."IndexerStatus_Id_seq"',(SELECT MAX("Id")+1 FROM "IndexerStatus"));
@@ -155,6 +156,7 @@ DELETE FROM "ScheduledTasks";
select setval('public."Series_Id_seq"',(SELECT MAX("Id")+1 FROM "Series"));
select setval('public."SubtitleFiles_Id_seq"',(SELECT MAX("Id")+1 FROM "SubtitleFiles"));
select setval('public."Tags_Id_seq"',(SELECT MAX("Id")+1 FROM "Tags"));
+ select setval('public."UpdateHistory_Id_seq"',(SELECT MAX("Id")+1 FROM "UpdateHistory"));
select setval('public."Users_Id_seq"',(SELECT MAX("Id")+1 FROM "Users"));
```
diff --git a/sonarr/settings.md b/sonarr/settings.md
index 44f8d288d..8c241fc6b 100644
--- a/sonarr/settings.md
+++ b/sonarr/settings.md
@@ -2,7 +2,7 @@
title: Sonarr Settings
description: Documentation of Sonarr Settings Page. Needs work to reflect v4 changes.
published: true
-date: 2025-05-15T17:27:34.383Z
+date: 2026-06-07T00:00:00.000Z
tags: settings, configuration, sonarr, profiles, quality, indexers
editor: markdown
dateCreated: 2021-06-11T23:29:12.300Z
@@ -147,6 +147,14 @@ Also, note that for each individual settings page, there are some options at the
- Replace Illegal Characters - If unchecked, Sonarr will remove them instead.
- The characters are: `:` `\` `/` `>` `<` `?` `*` `|` `"`
+- Colon Replacement Format - Select how colons are handled in episode names
+ - Delete - Remove colons (e.g. `Series Title Part 1`)
+ - Dash - Replace with a dash (e.g. `Series Title - Part 1`)
+ - Space Dash - Replace with a space and a dash (e.g. `Series Title - Part 1`)
+ - Space Dash Space - Replace with a space, dash, and space (e.g. `Series Title - Part 1`)
+ - Smart - Replaces a colon followed by a space with ` - `, otherwise deletes the colon (Default)
+ - Custom - Use a custom replacement string
+
### Standard Episode Format
Standard Episode Format - Set the naming convention for your Standard Series Type episodes. Click on the `?` icon to bring up the `File Name Tokens` dialog box.
@@ -165,18 +173,26 @@ Standard Episode Format - Set the naming convention for your Standard Series Typ
### Series Naming
- `{Series Title}` = The Series Name's Title!
-- `{Series CleanTitleYear}` = The Series Names Title! 2010
-- `{Series TitleFirstCharacter}` = S
- `{Series CleanTitle}` = The Series Names Title!
- `{Series TitleThe}` = Series Name's Title!, The
+- `{Series CleanTitleThe}` = Series Names Title!, The
- `{Series TitleYear}` = The Series Name's Title (2010)
+- `{Series CleanTitleYear}` = The Series Names Title! 2010
+- `{Series TitleTheYear}` = Series Name's Title!, The (2010)
+- `{Series CleanTitleTheYear}` = Series Names Title!, The 2010
+- `{Series TitleWithoutYear}` = The Series Name's Title!
+- `{Series CleanTitleWithoutYear}` = The Series Names Title!
+- `{Series TitleTheWithoutYear}` = Series Name's Title!, The
+- `{Series CleanTitleTheWithoutYear}` = Series Names Title!, The
+- `{Series TitleFirstCharacter}` = S
- `{Series Year}` = (2010)
### Series IDs
- `{ImdbId}` = tt12345
-- `{Tmdbid}` = 123456
-- `{TvMazeId}`= 54321
+- `{TvdbId}` = 123456
+- `{TmdbId}` = 123456
+- `{TvMazeId}` = 54321
### Seasons
@@ -202,6 +218,8 @@ Standard Episode Format - Set the naming convention for your Standard Series Typ
- `{Quality Full}` = HDTV 720p Proper
- `{Quality Title}` = HDTV 720p
+- `{Quality Proper}` = Proper
+- `{Quality Real}` = REAL
### Media Info
@@ -209,9 +227,10 @@ Standard Episode Format - Set the naming convention for your Standard Series Typ
- `{MediaInfo Full}` = x264 DTS \[EN+DE\]
- `{MediaInfo AudioCodec}` = DTS
- `{MediaInfo AudioChannels}` = 5.1
+- `{MediaInfo AudioLanguages}` = \[EN+DE\]
- `{MediaInfo AudioLanguagesAll}` = \[DE\]
-- `{MediaInfo AudioLanguagesAll}` = \[EN+DE\]
- `{MediaInfo SubtitleLanguages}` = \[EN\]
+- `{MediaInfo SubtitleLanguagesAll}` = \[EN+DE\]
- `{MediaInfo VideoCodec}` = x264
- `{MediaInfo VideoBitDepth}` = 8
- `{MediaInfo VideoDynamicRange}` = HDR
@@ -271,17 +290,25 @@ See [Standard Episode Format](/sonarr/settings#standard-episode-format) for more
### Series Naming
- `{Series Title}` = Series Name!
-- `{Series CleanTitleYear}` = Series Title 2010
-- `{Series TitleFirstCharacter}` = S
- `{Series CleanTitle}` = Series Title
- `{Series TitleThe}` = Series Title, The
+- `{Series CleanTitleThe}` = Series Title, The
- `{Series TitleYear}` = Series Title (2010)
+- `{Series CleanTitleYear}` = Series Title 2010
+- `{Series TitleTheYear}` = Series Title, The (2010)
+- `{Series CleanTitleTheYear}` = Series Title, The 2010
+- `{Series TitleWithoutYear}` = Series Name!
+- `{Series CleanTitleWithoutYear}` = Series Title
+- `{Series TitleTheWithoutYear}` = Series Title, The
+- `{Series CleanTitleTheWithoutYear}` = Series Title, The
+- `{Series TitleFirstCharacter}` = S
- `{Series Year}` = (2010)
### Series IDs
- `{ImdbId}` = tt12345
-- `{Tmdbid}` = 123456
+- `{TvdbId}` = 123456
+- `{TmdbId}` = 123456
- `{TvMazeId}` = 54321
## Season Folder Format
@@ -862,10 +889,11 @@ If you download using a BitTorrent client, the process is slightly different:
### List Options
- (Advanced Option) List Update Interval - How often should Radarr poll the list for updates? This is provided dependent as per the UI.
-- (Advanced Option) Clean Library Level - Series in library will be removed or unmonitored if not in at leasf one of your list(s)
+- (Advanced Option) Clean Library Level - Series in library will be removed or unmonitored if not in at least one of your list(s)
- Disabled - Do not clean the library (Recommended)
- Log Only - Only log the series are not on the list(s) and take no other actions
- Keep and Unmonitor Series - Keep series that are not on the list(s), but unmonitor them in Sonarr.
+ - Keep and Tag Series - Keep series that are not on the list(s) and tag them in Sonarr.
## List Exclusions
@@ -889,13 +917,17 @@ If you download using a BitTorrent client, the process is slightly different:
- On Grab - Be notified when episodes are available for download and has been sent to a download client
- On Import - {Formerly Known as On Download} Be notified when episodes are successfully imported
- On Upgrade - Be notified when episodes are upgraded to a better quality
+- On Import Complete - Be notified when a download has been fully processed (fired after On Import/On Upgrade)
- On Rename - Be notified when episodes are renamed
+- On Series Add - Be notified when a new series is added to Sonarr
- On Series Delete - Be notified when series are deleted
- On Episode File Delete - Be notified when episodes files are deleted
- On Episode File Delete For Upgrade - Be notified when episode files are deleted for upgrades
- On Health Issue - Be notified on health check failures
- Include Health Warnings - Be notified on health warnings in addition to errors.
+- On Health Restored - Be notified when a previously reported health issue is resolved
- On Application Update - Be notified when Sonarr gets updated to a new version
+- On Manual Interaction Required - Be notified when manual interaction is required to resolve an import
# Metadata
@@ -1028,3 +1060,5 @@ If you download using a BitTorrent client, the process is slightly different:
## Style
- Enable Color-Impaired Mode - Altered style to allow color-impaired users to better distinguish color coded information
+- Theme - Select the light or dark theme for the UI (Light/Dark/Auto)
+- UI Language - Select the language for the Sonarr UI
diff --git a/sonarr/supported.md b/sonarr/supported.md
index ad7bb3cbf..1036fdfa1 100644
--- a/sonarr/supported.md
+++ b/sonarr/supported.md
@@ -2,7 +2,7 @@
title: Sonarr Supported
description: Comprehensive list of supported indexers, download clients, and services for Sonarr
published: true
-date: 2024-08-02T12:07:02.466Z
+date: 2026-06-07T00:00:00.000Z
tags: sonarr, supported, indexers, download-clients, services, compatibility
editor: markdown
dateCreated: 2021-06-23T07:55:33.769Z
@@ -40,6 +40,8 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica
- [Refer to the Settings Page](/sonarr/settings#download-clients)
- SABnzbd {#sabnzbd}
- [Refer to the Settings Page](/sonarr/settings#download-clients)
+- Freebox Download {#torrentfreeboxdownload}
+ - [Refer to the Settings Page](/sonarr/settings#download-clients)
- Torrent Blackhole {#torrentblackhole}
- [Refer to the Settings Page](/sonarr/settings#download-clients)
- Transmission {#transmission}
@@ -126,14 +128,14 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica
> You can use a "pretty address" like `SomePrettyName ` {.is-info}
-- Emby {#mediabrowser}
+- Emby / Jellyfin {#mediabrowser}
- Gotify {#gotify}
- Join {#join}
- Kodi {#xbmc}
- Kodi spawned from the love of media. It is an entertainment hub that brings all your digital media together into a beautiful and user friendly package. It is 100% free and open source, very customizable and runs on a wide variety of devices. It is supported by a dedicated team of volunteers and a huge community. By adding Kodi as a connection you can update Kodi's library when a new episode has been added to Sonarr.
- Mailgun {#mailgun}
-- Notifiar {#notifiar}
-- Ntfy.sh {#ntfysh}
+- Notifiarr {#notifiarr}
+- Ntfy.sh {#ntfy}
- Plex Media Server {#plexserver}
- The server for your self hosted Plex system, Enabling this is much like Kodi will allow you to push an update to your plex server notifying it that a new/upgraded episode is available.
@@ -148,7 +150,7 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica
- Pushcut {#pushcut}
- Pushover {#pushover}
- SendGrid {#sendgrid}
-- Signal {#signal-cli}
+- Signal {#signal}
- Requires [Signal-CLI](https://github.com/AsamK/signal-cli)
- Simplepush {#simplepush}
- Slack {#slack}
@@ -169,11 +171,23 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica
{#importlist}
-- Sonarr {#sonarrimport}
- - TRaSH has [a guide](https://trash-guides.info/Sonarr/Tips/Sync-2-radarr-sonarr/) for syncing two instances
+- AniList {#anilistimport}
+ - [Refer to the Settings Page](/sonarr/settings#import-lists)
+- Custom Lists {#customimport}
+ - [Refer to the Settings Page](/sonarr/settings#import-lists)
+- IMDb Lists {#imdblistimport}
+ - [Refer to the Settings Page](/sonarr/settings#import-lists)
+- MyAnimeList {#myanimelistimport}
+ - [Refer to the Settings Page](/sonarr/settings#import-lists)
- Plex Watchlist {#pleximport}
- - Simply add a Plex watchlist for the authenticated Plex user to Radarr. Note that it's required that your list contain shows on it.
+ - Simply add a Plex watchlist for the authenticated Plex user to Sonarr. Note that it's required that your list contain shows on it.
- To have multiple user's watchlists you'll need to add each user's lists and authenticate with their Plex user.
+- Plex Watchlist RSS {#plexrssimport}
+ - [Refer to the Settings Page](/sonarr/settings#import-lists)
+- Simkl {#simkluserimport}
+ - [Refer to the Settings Page](/sonarr/settings#import-lists)
+- Sonarr {#sonarrimport}
+ - TRaSH has [a guide](https://trash-guides.info/Sonarr/Tips/Sync-2-radarr-sonarr/) for syncing two instances
- Trakt List {#traktlistimport}
- Username - Ensure you enter the actual username of the user and not the user's name
- List - Ensure you use the list name as presented in the list URL
@@ -190,6 +204,9 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica
{#metadata}
+- Kometa {#kometametadata}
+ - Enable - Enable metadata file creation for this metadata type
+ > Kometa metadata is deprecated. {.is-warning}
- Kodi (XBMC) / Emby {#xbmcmetadata}
- Enable - Enable metadata file creation for this metadata type
- Series Metadata - Create a `tvshow.nfo` with full series metadata
@@ -198,6 +215,9 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica
- Series Images - Create various Series images including posters and banners named as `poster.jpg` and `banner.jpg`
- Season Images - Create various Season images including posters and banners named as `season##-poster.jpg` and `season##-banner.jpg`
- Episode Images - Create various Episode images such as thumnbnails named as named as `-thumb.jpg`
+- Plex {#plexmetadata}
+ - Enable - Enable metadata file creation for this metadata type
+ - Series Metadata - Create a `.plexmatch` file in the series root folder
- Roksbox {#roksboxmetadata}
- Enable - Enable metadata file creation for this metadata type
- Episode Metadata - Create `Season##\.xml` for each episode
diff --git a/sonarr/system.md b/sonarr/system.md
index ee2434b4e..a6b16bbc2 100644
--- a/sonarr/system.md
+++ b/sonarr/system.md
@@ -2,7 +2,7 @@
title: Sonarr System
description: System information, logs, scheduled tasks, and status monitoring for Sonarr administration and troubleshooting
published: true
-date: 2023-10-12T15:54:39.615Z
+date: 2026-06-07T00:00:00.000Z
tags: system, administration, logs, tasks, status, sonarr
editor: markdown
dateCreated: 2021-09-08T17:58:43.288Z
@@ -14,9 +14,7 @@ dateCreated: 2021-09-08T17:58:43.288Z
- [Status](#status)
- [Health](#health)
- [System Warnings](#system-warnings)
- - [Currently installed .NET Framework is old and unsupported](#currently-installed-net-framework-is-old-and-unsupported)
- - [Currently installed .NET Framework is supported but upgrading is recommended](#currently-installed-net-framework-is-supported-but-upgrading-is-recommended)
- - [Currently installed mono version is old and unsupported](#currently-installed-mono-version-is-old-and-unsupported)
+ - [Invalid API Key](#invalid-api-key)
- [Package Maintainer Message](#package-maintainer-message)
- [New update is available](#new-update-is-available)
- [Cannot install update because startup folder and/or UI folder are not writable by the user](#cannot-install-update-because-startup-folder-andor-ui-folder-are-not-writable-by-the-user)
@@ -25,16 +23,21 @@ dateCreated: 2021-09-08T17:58:43.288Z
- [Failed to resolve the IP Address for the Configured Proxy Host](#failed-to-resolve-the-ip-address-for-the-configured-proxy-host)
- [Proxy Failed Test](#proxy-failed-test)
- [System Time is off by more than 1 day](#system-time-is-off-by-more-than-1-day)
- - [MediaInfo Library Could not be Loaded](#mediainfo-library-could-not-be-loaded)
- - [Mono Legacy TLS enabled](#mono-legacy-tls-enabled)
- [Download Clients](#download-clients)
- [No download client is available](#no-download-client-is-available)
- [Unable to communicate with download client](#unable-to-communicate-with-download-client)
- - [Download clients are unavailable due to failure](#download-clients-are-unavailable-due-to-failure)
+ - [Download clients are unavailable due to failures](#download-clients-are-unavailable-due-to-failures)
- [Enable Completed Download Handling](#enable-completed-download-handling)
- [Downloading into Root Folder](#downloading-into-root-folder)
+ - [Bad Download Client Settings](#bad-download-client-settings)
+ - [Bad Remote Path Mapping](#bad-remote-path-mapping)
+ - [Docker bad remote path mapping](#docker-bad-remote-path-mapping)
+ - [Permissions Error](#permissions-error)
+ - [Remote File was removed part way through processing](#remote-file-was-removed-part-way-through-processing)
+ - [Remote Path is Used and Import Failed](#remote-path-is-used-and-import-failed)
- [Completed Download Handling is disabled](#completed-download-handling-is-disabled)
- [Download Client Removes Completed Downloads](#download-client-removes-completed-downloads)
+ - [Download Client Has Sorting Enabled](#download-client-has-sorting-enabled)
- [Indexers](#indexers)
- [No indexers available with automatic search enabled, Sonarr will not provide any automatic search results](#no-indexers-available-with-automatic-search-enabled-sonarr-will-not-provide-any-automatic-search-results)
- [No indexers available with RSS sync enabled, Sonarr will not grab new releases automatically](#no-indexers-available-with-rss-sync-enabled-sonarr-will-not-grab-new-releases-automatically)
@@ -44,13 +47,19 @@ dateCreated: 2021-09-08T17:58:43.288Z
- [Indexers are unavailable due to failures](#indexers-are-unavailable-due-to-failures)
- [Jackett All Endpoint Used](#jackett-all-endpoint-used)
- [Solutions](#solutions)
+ - [Indexer Download Client is Invalid](#indexer-download-client-is-invalid)
+ - [Notifications](#notifications)
+ - [Notifications are unavailable due to failures](#notifications-are-unavailable-due-to-failures)
- [Media & Lists](#media--lists)
- [Series Removed from TheTVDB](#series-removed-from-thetvdb)
- [Lists are unavailable due to failures](#lists-are-unavailable-due-to-failures)
- [Import List Missing Root Folder](#import-list-missing-root-folder)
- [Missing Root Folder](#missing-root-folder)
- - [Missing root folder](#missing-root-folder-1)
- [Series Path Mount is Read Only](#series-path-mount-is-read-only)
+ - [Metadata](#metadata)
+ - [Metadata Consumer using deprecated Kometa integration](#metadata-consumer-using-deprecated-kometa-integration)
+ - [Other](#other)
+ - [Cannot Write to Recycling Bin](#cannot-write-to-recycling-bin)
- [Disk Space](#disk-space)
- [About](#about)
- [More Info](#more-info)
@@ -70,32 +79,11 @@ dateCreated: 2021-09-08T17:58:43.288Z
### System Warnings
-#### Currently installed .NET Framework is old and unsupported
+#### Invalid API Key
-- Sonarr uses the .NET Framework. We need to build Sonarr against the lowest supported version still used by our users. Occasionally we increase the version we build against to be able to utilize new features. Apparently you haven't applied the appropriate Windows updates in a while and need to upgrade .NET to be able to use newer versions of Sonarr.
+{#invalid-api-key}
-- Upgrading the .NET Framework is very straightforward on Windows, although it often requires a restart.
-
-#### Currently installed .NET Framework is supported but upgrading is recommended
-
-- Sonarr uses the .NET Framework. We need to build Sonarr against the lowest supported version still used by our users. Upgrading to newer versions allows us to build against newer versions and use new Framework features.
-
-- Upgrading the .NET Framework is very straightforward on Windows, although it often requires a
-
-#### Currently installed mono version is old and unsupported
-
-- Sonarr v4 is written in .NET and v3 required Mono. Mono 5.20 is the absolute minimum for Sonarr.
-- The upgrade procedure for Mono varies per platform.
-
-> Mono is no longer supported starting in Sonarr version 4.0
-{.is-warning}
-
-#### Currently installed SQLite version is not supported
-
-- Sonarr stores its data in an SQLite database. The SQLite3 library installed on your system is too old. Sonarr requires at least version 3.9.0.
-
-> Note that Sonarr uses `libSQLite3.so` which may or may not be contained in a SQLite3 upgrade package.
-{.is-info}
+- Your API key is invalid or too short. The API key must be at least 20 characters long. You can update your API key in Settings or the config file.
#### Package Maintainer Message
@@ -130,43 +118,45 @@ If you're on Linux, you will probably have to change the home directory for the
#### Failed to resolve the IP Address for the Configured Proxy Host
+{#proxy-failed-resolve-ip}
+
Review your proxy settings and ensure they are accurate
Ensure your proxy is up, running, and accessible
#### Proxy Failed Test
+{#proxy-failed-test}
+
Your configured proxy failed to test successfully, review the HTTP error provided and/or check logs for more details.
#### System Time is off by more than 1 day
+{#system-time-off}
+
System time is off by more than 1 day. Scheduled tasks may not run correctly until the time is corrected
Review your system time and ensure it is synced to an authoritative time server and accurate
-#### MediaInfo Library Could not be Loaded
-
-MediaInfo Library could not be loaded. Sonarr requires MediaInfo (`libmediainfo`) to evaluate the video attributes of files.
-
-#### Mono Legacy TLS enabled
-
-{#sonarr-mono-4.x-tls-workaround-still-enabled-consider-removing-mono_tls_provider-legacy-environment-option}
-
-Mono 4.x tls workaround still enabled, consider removing MONO_TLS_PROVIDER=legacy environment option.
-
### Download Clients
#### No download client is available
+{#no-download-client-is-available}
+
A properly configured and enabled download client is required for Sonarr to be able to download media. Since Sonarr supports different download clients, you should determine which best matches your requirements. If you already have a download client installed, you should configure Sonarr to use it and create a category. See Settings => Download Client.
#### Unable to communicate with download client
+{#unable-to-communicate-with-download-client}
+
Sonarr was unable to communicate with the configured download client. Please verify if the download client is operational and double check the url. This could also indicate an authentication error.
This is typically due to improperly configured download client. Things you can typically check:
Your download clients IP Address if its on the same bare metal machine this is typically 127.0.0.1
The Port number of that your download client is using these are filled out with the default port number but if you've changed it you will need to have the same one entered into Sonarr.
Ensure SSL encryption is not turned on if you're using both your Sonarr instance and your download client on a local network. See the SSL FAQ entry for more information.
-#### Download clients are unavailable due to failure
+#### Download clients are unavailable due to failures
+
+{#download-clients-are-unavailable-due-to-failures}
One or more of your download clients is not responding to requests made by Sonarr. Therefore Sonarr has decided to temporarily stop querying the download client on it's normal 1 minute cycle, which is normally used to track active downloads and import finished ones. However, Sonarr will continue to attempt to send downloads to the client, but will in all likeliness fail.
You should inspect System => Logs to see what the reason is for the failures.
@@ -179,6 +169,8 @@ If you no longer use this download client, disable it in Sonarr to prevent the e
#### Docker bad remote path mapping
+{#docker-bad-remote-path-mapping}
+
- This error is typically associated with bad docker paths within either your download client or Sonarr
- An example of this would be:
@@ -213,38 +205,33 @@ If you no longer use this download client, disable it in Sonarr to prevent the e
#### Bad Download Client Settings
+{#bad-download-client-settings}
+
- The location your download client is downloading files to is causing problems. Check the logs for further information. This may be permissions or attempting to go from windows to linux or linux to windows without a remote path map.
#### Bad Remote Path Mapping
+{#bad-remote-path-mapping}
+
- The location your download client is downloading files to is causing problems. Check the logs for further information. This may be permissions or attempting to go from windows to linux or linux to windows without a remote path map. See [TRaSH's Remote Path Guide](https://trash-guides.info/Sonarr/sonarr-remote-path-mapping/) for more information.
#### Permissions Error
+{#permissions-error}
+
- Sonarr or the user sonarr is running as cannot access the location your download client is downloading files to. This is typically a permission issue.
#### Remote File was removed part way through processing
+{#remote-path-file-removed}
+
- A file accessible via a remote path map appears to have been removed prior to processing completing.
#### Remote Path is Used and Import Failed
-- Check your logs for more info; Refer to our Troubleshooting Guides
-
-### Downloading into Root Folder
-
-{#downloads-in-root-folder}
+{#remote-path-import-failed}
-- Within the application, a root folder is defined as the configured media library folder. This is not the root folder of a mount. Your download client has an incomplete or complete (or is moving completed downloads) into your root (library) folder.
-- This frequently causes issues - including data loss - and should not be done. To fix this change your download client so it is not placing downloads within your root folder. Note that 'placing' also includes if your download client category is set to your root folder or if NZBGet/SABnzbd have sort enabled and are sorting to your root folder.
-- Please note that this check looks at all defined/configured root folders added not only root folders currently in use. In other words, the folder your download client downloads into or moves completed downloads to, should not be the same folder you have configured as your root/library/final media destination folder in the *arr application.
-- Configured Root Folders (aka Library folders) can be found in [Settings => Media Management => Root Folders](/sonarr/settings/#root-folders)
-- One example is if your downloads are going into `/data/downloads` then you have a root folder set as `/data/downloads`.
-- It is suggested to use paths like `/data/media/` for your root folder/library and `/data/downloads/` for your downloads.
-- Review our [Docker Guide](/docker-guide) and TRaSH's [Hard links and Instant Moves (Atomic-Moves) Guide](https://trash-guides.info/hardlinks/) for more information on the correct and optimal path setup. Note that the concepts apply for docker and non-docker
-
-> Your download folder where your download client places the downloads and your root/library folder MUST be separate. \*Arr will import the file(s) from your download client's folder into your library. The download client should not move anything or download anything to your library.
-{.is-warning}
+- Check your logs for more info; Refer to our Troubleshooting Guides
#### Completed Download Handling is disabled
@@ -271,6 +258,12 @@ If you no longer use this download client, disable it in Sonarr to prevent the e
- Sabnzbd: Switches => Post Processing => Keep Jobs **must** be set to 14 days or greater OR be set to Keep All History
- Removing completed downloads from your client can be managed by Sonarr and enabled via the download client settings in \*Arr. Thus \*Arr can ensure that your download client history is cleaned up.
+#### Download Client Has Sorting Enabled
+
+{#download-folder-and-library-folder-not-different-folders}
+
+- One of your download clients has sorting enabled. This causes Sonarr to be unable to find completed downloads because the files are moved or renamed by the download client before Sonarr can import them. Disable sorting in your download client to resolve this.
+
### Indexers
#### No indexers available with automatic search enabled, Sonarr will not provide any automatic search results
@@ -327,6 +320,20 @@ Go into Settings > Indexers, select an indexer you'd like to allow Automatic Sea
- Check out [Prowlarr](/prowlarr) which can sync indexers to \*Arr and from the Lidarr/Radarr/Readarr development team.
- Check out [NZBHydra2](https://github.com/theotherp/nzbhydra2) which can sync indexers to \*Arr. But do not use their single aggregate endpoint and use `multi` if sync will be used.
+#### Indexer Download Client is Invalid
+
+{#invalid-indexer-download-client-setting}
+
+- One or more of your indexers has a download client configured that no longer exists or is disabled in Sonarr. Go to Settings => Indexers and select the affected indexer, then update or remove the download client setting.
+
+### Notifications
+
+#### Notifications are unavailable due to failures
+
+{#notifications-are-unavailable-due-to-failures}
+
+- One or more of your notification connections is failing. Sonarr will back off and reduce the frequency of attempts. Review System => Events and check the logs to determine the cause of the failures. If you no longer use this notification, disable it in Sonarr to prevent the errors.
+
### Media & Lists
#### Series Removed from TheTVDB
@@ -342,12 +349,16 @@ Go into Settings > Indexers, select an indexer you'd like to allow Automatic Sea
#### Import List Missing Root Folder
+{#import-list-missing-root-folder}
+
- One or more of your import lists are configured to a root folder that is not accessible to Sonarr.
- This may be permissions issues, a missing mount, or simply needing to update the lists after reorganizing your setup.
#### Missing Root Folder
-- A root folder is added to Sonarr and dies nor exist or is not accessible
+{#missing-root-folder}
+
+- A root folder is added to Sonarr and does not exist or is not accessible.
- This error is typically identified if a Series is looking for a root folder but that root folder is no longer available.
- This error may also be if a list is still pointed at a root folder but that root folder is no longer available.
- If you would like to remove this warning simply find the series that is still using the old root folder and edit it to the correct root folder.
@@ -366,6 +377,20 @@ Go into Settings > Indexers, select an indexer you'd like to allow Automatic Sea
A mount containing a series path is read only and is not writable by the user Sonarr is running as.
+### Metadata
+
+#### Metadata Consumer using deprecated Kometa integration
+
+- A metadata consumer is using the Kometa (formerly Plex Meta Manager) integration which has been deprecated. Please remove or reconfigure the Kometa metadata consumer in Settings => Metadata.
+
+### Other
+
+#### Cannot Write to Recycling Bin
+
+{#cannot-write-recycle-bin}
+
+- Sonarr is unable to write to the configured Recycling Bin path. Check that the path exists and that the user Sonarr is running as has write permissions to it.
+
## Disk Space
- This section will show you available disk space
diff --git a/sonarr/troubleshooting.md b/sonarr/troubleshooting.md
index 978fb798d..6078995c5 100644
--- a/sonarr/troubleshooting.md
+++ b/sonarr/troubleshooting.md
@@ -2,7 +2,7 @@
title: Sonarr Troubleshooting
description: Common issues, error codes, and solutions for troubleshooting Sonarr installation, configuration, and operational problems
published: true
-date: 2026-02-01T14:30:13.515Z
+date: 2026-06-07T00:00:00.000Z
tags: sonarr, troubleshooting, support, issues, debugging, errors
editor: markdown
dateCreated: 2021-06-20T19:13:01.108Z
@@ -95,7 +95,7 @@ The logs can be long and hard to read as part of a forum or Reddit post and they
You can change the log level at Settings => General => Logging. Sonarr does not need to restarted for the change to take effect. This change only affects the log files, not the logging database. The latest debug/trace log files are named `sonarr.debug.txt` and `sonarr.trace.txt` respectively.
-If you're unable to access the UI to set the logging level you can do so by editing config.xml in the AppData directory by setting the LogLevel value to Debug or Trace instead of Info.
+If you're unable to access the UI to set the logging level you can do so by editing config.xml in the AppData directory by setting the LogLevel value to Debug or Trace instead of the current value.
```xml
diff --git a/sonarr/wanted.md b/sonarr/wanted.md
index 02a75c522..1f6c25c70 100644
--- a/sonarr/wanted.md
+++ b/sonarr/wanted.md
@@ -2,7 +2,7 @@
title: Sonarr Wanted
description: Managing wanted episodes, manual searches, and download monitoring in Sonarr's Wanted section
published: true
-date: 2021-11-29T22:12:55.806Z
+date: 2026-06-07T00:00:00.000Z
tags: wanted, episodes, search, monitoring, missing, sonarr
editor: markdown
dateCreated: 2021-06-10T01:40:02.329Z
@@ -15,11 +15,11 @@ The Wanted => Missing section contains a list of the episodes you have marked to
> This will only include episodes completely missing from your disk, not episodes which exist on disk, but have their cutoff profile unmet.
{.is-info}
-- "Search Selected" - Here you can select certain episodes if you wish to search for them with your indexers
+- "Search Selected" / "Search All" - When episodes are selected, this button searches only the selected episodes with your indexers. When no episodes are selected, it searches all current missing episodes. Once "Search All" is confirmed, a dialog box will pop up with a warning letting you know how many episodes will be searched for; this is particularly helpful to know if your indexers limit your API calls.
-- "Unmonitor Selected" - Here you can select certain episodes and unmonitor them if you're no longer interested in them.
+- "Unmonitor Selected" / "Monitor Selected" - When viewing monitored episodes, selecting certain episodes and clicking this button will unmonitor them. When viewing unmonitored episodes, this button will monitor the selected episodes.
-- "Search All" - Selecting here will send a search to all of your indexers for all current missing episodes. Once pressed, a dialog box will pop up with a warning to you, letting you know how many episodes will be searched for; this is particularly helpful to know if your indexers limit your api calls.
+- Filter - The filter button (top right) lets you toggle between viewing Monitored and Unmonitored missing episodes.
> This search process cannot be canceled once started without restarting Sonarr.
{.is-info}
@@ -40,7 +40,6 @@ The cut off is where you essentially tell Sonarr that the quality of the video f
There are a couple of options available to you on this page

-1. Search Selected - By selecting episodes on your list you can perform an Automatic search to try to see if there are any upgrades to your existing files.
-1. Unmonitor Selected - By selecting certain episodes on your list you can tell Sonarr to no longer look for any upgrades by Unmonitoring that episode.
-1. Search All - This can be dangerous (depending on how big your list is) as you're telling Sonarr to search every file that hasn't met the cut off. This can be useful if you do not have a massive list.
-1. Filter - This will allow you to filter out your results. This is useful if you're wanting to search a specific set of episodes or series
+1. Search Selected / Search All - When episodes are selected, this button performs an automatic search for upgrades to only the selected files. When no episodes are selected, it searches all cutoff unmet episodes. This can be resource-intensive depending on the size of your list.
+1. Unmonitor Selected / Monitor Selected - When viewing monitored episodes, selecting certain episodes and clicking this button will unmonitor them so Sonarr no longer looks for upgrades. When viewing unmonitored episodes, this button will re-monitor the selected episodes.
+1. Filter - The filter button (top right) lets you toggle between viewing Monitored and Unmonitored cutoff unmet episodes.
From 1eb5b66554b97e50295fbd5fa86af7f9a8be6399 Mon Sep 17 00:00:00 2001
From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
Date: Sun, 7 Jun 2026 11:47:41 -0500
Subject: [PATCH 2/8] docs(radarr): audit develop wiki pages against current
source code
Cross-referenced every documented option, setting, env var, integration,
and health check against the current Radarr develop-branch source code.
Edits made to 14 pages.
Key categories of change:
- environment-variables.md: corrected config-key names to match the
literal strings inside ConfigFileProvider.cs GetValueX() calls; added
/ removed rows to match current option classes.
- system.md: aligned health-check entries with the current
src/NzbDrone.Core/HealthCheck/Checks/ classes (anchor IDs match
WikiUrlFragment values in code).
- custom-scripts.md: cross-referenced per-event Radarr_* env vars
against CustomScript.cs override methods.
- supported.md: cross-referenced indexer / download client /
notification / import list / metadata class names against current
source tree.
- settings.md: verified naming tokens against FileNameBuilder.cs
tokenHandlers[] entries (source-of-truth for valid tokens).
WikiJS frontmatter preserved on every page. date field updated to
2026-06-07T00:00:00.000Z.
---
radarr/contributing.md | 8 +-
radarr/custom-scripts.md | 222 ++++++++++++++++++----
radarr/environment-variables.md | 7 +-
radarr/faq.md | 8 +-
radarr/installation/multiple-instances.md | 7 +-
radarr/installation/reverse-proxy.md | 6 +-
radarr/library.md | 16 +-
radarr/postgres-setup.md | 12 +-
radarr/quick-start-guide.md | 4 +-
radarr/settings.md | 30 ++-
radarr/supported.md | 21 +-
radarr/system.md | 68 +++++--
radarr/tips-and-tricks.md | 4 +-
radarr/troubleshooting.md | 4 +-
14 files changed, 320 insertions(+), 97 deletions(-)
diff --git a/radarr/contributing.md b/radarr/contributing.md
index 76c6808ae..d87c5d8b6 100644
--- a/radarr/contributing.md
+++ b/radarr/contributing.md
@@ -2,7 +2,7 @@
title: Radarr Contributing
description: Guide for contributing to Radarr development including setup, building, testing, and submitting changes
published: true
-date: 2022-09-26T15:56:47019Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, development, contributing, guide, setup
editor: markdown
dateCreated: 2021-05-16T21:58:50.719Z
@@ -18,13 +18,13 @@ Setup guides, [FAQ](/radarr/faq), the more information we have on the [wiki](htt
# Development
-Radarr is written in C# (backend) and JS (frontend). The backend is built on the .NET6 (and _soon_ .NET8) framework, while the frontend utilizes Reactjs.
+Radarr is written in C# (backend) and JS (frontend). The backend is built on the .NET8 framework, while the frontend utilizes Reactjs.
## Tools required
- Visual Studio 2022 or higher is recommended (). The community version is free and works ().
-> VS 2022 V17.0 or higher is recommended as it includes the .NET6 SDK
+> VS 2022 V17.0 or higher is recommended as it includes the .NET8 SDK
{.is-info}
- HTML/Javascript editor of choice (VS Code/Sublime Text/Webstorm/Atom/etc)
@@ -69,7 +69,7 @@ The backend solution is most easily built and ran in Visual Studio or Rider, how
#### Visual Studio
-> Ensure startup project is set to `Radarr.Console` and framework to `net6.0`
+> Ensure startup project is set to `Radarr.Console` and framework to `net8.0`
{.is-info}
1. First `Build` the solution in Visual Studio, this will ensure all projects are correctly built and dependencies restored
diff --git a/radarr/custom-scripts.md b/radarr/custom-scripts.md
index fe64fd772..54c943e7e 100644
--- a/radarr/custom-scripts.md
+++ b/radarr/custom-scripts.md
@@ -2,7 +2,7 @@
title: Radarr Custom Scripts
description: Guide for creating and implementing custom scripts for automation and integration in Radarr
published: true
-date: 2025-08-12T13:58:51.517Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, scripts, automation, custom, integration, hooks, api
editor: markdown
dateCreated: 2021-06-16T15:55:44.765Z
@@ -29,62 +29,96 @@ Note that the following will only be logged for custom scripts:
| Environment Variable | Details |
| ------------------------------------ | -------------------------------------------------------------------------------------------- |
| `radarr_eventtype` | `Grab` |
-| `radarr_download_client` | Download client (empty if unknown) |
-| `radarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
| `radarr_movie_id` | Internal ID of the movie |
-| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
-| `radarr_movie_in_cinemas_date` | Cinema release date (empty if unknown) |
-| `radarr_movie_physical_release_date` | Physical release date (empty if unknown) |
| `radarr_movie_title` | Title of the movie |
-| `radarr_movie_tmdbid` | TMDb ID for the movie |
| `radarr_movie_year` | Release year of the movie |
+| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) |
+| `radarr_movie_genres` | \|-delimited list of genres for the movie |
| `radarr_movie_tags` | Tags set for the movie |
+| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
+| `radarr_movie_tmdbid` | TMDb ID for the movie |
+| `radarr_movie_in_cinemas_date` | Cinema release date (empty if unknown) |
+| `radarr_movie_physical_release_date` | Physical release date (empty if unknown) |
+| `radarr_movie_overview` | Overview/description of the movie |
+| `radarr_release_title` | Torrent/NZB title |
| `radarr_release_indexer` | Indexer from which the release was grabbed |
-| `radarr_indexerflags` | Indexer flags associated with the release |
+| `radarr_release_size` | Size of the release, as reported by the indexer |
+| `radarr_release_releasegroup` | Release group (empty if unknown) |
| `radarr_release_quality` | Quality name of the release, as detected by Radarr |
| `radarr_release_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions |
-| `radarr_release_releasegroup` | Release group (empty if unknown) |
-| `radarr_release_size` | Size of the release, as reported by the indexer |
-| `radarr_release_title` | Torrent/NZB title |
+| `radarr_indexerflags` | Indexer flags associated with the release |
+| `radarr_release_customformat` | \|-delimited list of custom formats for the release |
+| `radarr_release_customformatscore` | Custom format score for the release |
+| `radarr_download_client` | Download client (empty if unknown) |
+| `radarr_download_client_type` | Download client type (empty if unknown) |
+| `radarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
## On Import/On Upgrade
-| Environment Variable | Details |
-| ------------------------------------ | -------------------------------------------------------------------------------------------- |
-| `radarr_eventtype` | `Download` |
-| `radarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
-| `radarr_download_client` | Download client |
-| `radarr_isupgrade` | `True` when an existing file is upgraded, `False` otherwise |
-| `radarr_movie_id` | Internal ID of the movie |
-| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
-| `radarr_movie_in_cinemas_date` | Cinema release date (empty if unknown) |
-| `radarr_movie_path` | Full path to the movie |
-| `radarr_movie_physical_release_date` | Physical release date (empty if unknown) |
-| `radarr_movie_title` | Title of the movie |
-| `radarr_movie_tags` | Tags set for the movie |
-| `radarr_movie_tmdbid` | TMDb ID for the movie |
-| `radarr_movie_year` | Release year of the movie |
-| `radarr_moviefile_id` | Internal ID of the movie file |
-| `radarr_moviefile_relativepath` | Path to the movie file, relative to the movie path |
-| `radarr_moviefile_path` | Full path to the movie file |
-| `radarr_moviefile_quality` | Quality name of the release, as detected by Radarr |
-| `radarr_moviefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions |
-| `radarr_moviefile_releasegroup` | Release group (empty if unknown) |
-| `radarr_moviefile_scenename` | Original release name (empty if unknown) |
-| `radarr_moviefile_sourcepath` | Full path to the imported movie file |
-| `radarr_moviefile_sourcefolder` | Full path to the folder the movie file was imported from |
-| `radarr_deletedrelativepaths` | \|-delimited list of files that were deleted to import this file |
-| `radarr_deletedpaths` | \|-delimited list of full paths to files that were deleted to import this file |
+| Environment Variable | Details |
+| --------------------------------------------- | -------------------------------------------------------------------------------------------- |
+| `radarr_eventtype` | `Download` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
+| `radarr_isupgrade` | `True` when an existing file is upgraded, `False` otherwise |
+| `radarr_movie_id` | Internal ID of the movie |
+| `radarr_movie_title` | Title of the movie |
+| `radarr_movie_year` | Release year of the movie |
+| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) |
+| `radarr_movie_genres` | \|-delimited list of genres for the movie |
+| `radarr_movie_tags` | Tags set for the movie |
+| `radarr_movie_path` | Full path to the movie |
+| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
+| `radarr_movie_tmdbid` | TMDb ID for the movie |
+| `radarr_movie_in_cinemas_date` | Cinema release date (empty if unknown) |
+| `radarr_movie_physical_release_date` | Physical release date (empty if unknown) |
+| `radarr_movie_overview` | Overview/description of the movie |
+| `radarr_moviefile_id` | Internal ID of the movie file |
+| `radarr_moviefile_relativepath` | Path to the movie file, relative to the movie path |
+| `radarr_moviefile_path` | Full path to the movie file |
+| `radarr_moviefile_quality` | Quality name of the release, as detected by Radarr |
+| `radarr_moviefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions |
+| `radarr_moviefile_releasegroup` | Release group (empty if unknown) |
+| `radarr_moviefile_scenename` | Original release name (empty if unknown) |
+| `radarr_moviefile_sourcepath` | Full path to the imported movie file |
+| `radarr_moviefile_sourcefolder` | Full path to the folder the movie file was imported from |
+| `radarr_moviefile_mediainfo_audiochannels` | Number of audio channels in the movie file |
+| `radarr_moviefile_mediainfo_audiocodec` | Audio codec of the movie file |
+| `radarr_moviefile_mediainfo_audiolanguages` | Audio languages in the movie file (distinct, space/slash-delimited) |
+| `radarr_moviefile_mediainfo_languages` | Audio languages in the movie file (space/slash-delimited) |
+| `radarr_moviefile_mediainfo_height` | Video height in pixels |
+| `radarr_moviefile_mediainfo_width` | Video width in pixels |
+| `radarr_moviefile_mediainfo_subtitles` | Subtitle languages in the movie file (space/slash-delimited) |
+| `radarr_moviefile_mediainfo_videocodec` | Video codec of the movie file |
+| `radarr_moviefile_mediainfo_videodynamicrangetype` | Dynamic range type of the video (e.g. HDR, DV) |
+| `radarr_moviefile_customformat` | \|-delimited list of custom formats for the movie file |
+| `radarr_moviefile_customformatscore` | Custom format score for the movie file |
+| `radarr_release_indexer` | Indexer from which the release was grabbed (empty if unknown) |
+| `radarr_release_size` | Size of the release (empty if unknown) |
+| `radarr_release_title` | Torrent/NZB title (empty if unknown) |
+| `radarr_download_client` | Download client |
+| `radarr_download_client_type` | Download client type |
+| `radarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) |
+| `radarr_deletedrelativepaths` | \|-delimited list of files that were deleted to import this file (only if upgrade) |
+| `radarr_deletedpaths` | \|-delimited list of full paths to files that were deleted to import this file (only if upgrade) |
+| `radarr_deleteddateadded` | \|-delimited list of dates the deleted files were added (only if upgrade) |
+| `radarr_deletedrecyclebinpaths` | \|-delimited list of recycle bin paths for deleted files (only if upgrade; empty if not moved to recycle bin) |
## On Rename
| Environment Variable | Details |
| ---------------------------------------- | ---------------------------------------------- |
| `radarr_eventtype` | `Rename` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
| `radarr_movie_id` | Internal ID of the movie |
| `radarr_movie_title` | Title of the movie |
-| `radarr_movie_tags` | Tags set for the movie |
| `radarr_movie_year` | Release year of the movie |
+| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) |
+| `radarr_movie_genres` | \|-delimited list of genres for the movie |
+| `radarr_movie_tags` | Tags set for the movie |
| `radarr_movie_path` | Full path to the movie |
| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
| `radarr_movie_tmdbid` | TMDb ID for the movie |
@@ -96,29 +130,135 @@ Note that the following will only be logged for custom scripts:
| `radarr_moviefile_previousrelativepaths` | \|-delimited list of previous relative path(s) |
| `radarr_moviefile_previouspaths` | \|-delimited list of previous path(s) |
+## On Movie Added
+
+| Environment Variable | Details |
+| ------------------------------- | ------------------------------------------------------------ |
+| `radarr_eventtype` | `MovieAdded` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
+| `radarr_movie_id` | Internal ID of the movie |
+| `radarr_movie_title` | Title of the movie |
+| `radarr_movie_year` | Release year of the movie |
+| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) |
+| `radarr_movie_genres` | \|-delimited list of genres for the movie |
+| `radarr_movie_tags` | Tags set for the movie |
+| `radarr_movie_path` | Full path to the movie |
+| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
+| `radarr_movie_tmdbid` | TMDb ID for the movie |
+| `radarr_movie_addmethod` | Method used to add the movie (e.g. `Manual`, `List`, `Api`) |
+
+## On Movie Delete
+
+| Environment Variable | Details |
+| ------------------------------- | ------------------------------------------------------------ |
+| `radarr_eventtype` | `MovieDelete` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
+| `radarr_movie_id` | Internal ID of the movie |
+| `radarr_movie_title` | Title of the movie |
+| `radarr_movie_year` | Release year of the movie |
+| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) |
+| `radarr_movie_genres` | \|-delimited list of genres for the movie |
+| `radarr_movie_tags` | Tags set for the movie |
+| `radarr_movie_path` | Full path to the movie |
+| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
+| `radarr_movie_tmdbid` | TMDb ID for the movie |
+| `radarr_movie_overview` | Overview/description of the movie |
+| `radarr_movie_deletedfiles` | `True` if files were deleted with the movie, `False` otherwise |
+| `radarr_movie_folder_size` | Size of the movie file (only present if files were deleted) |
+
+## On Movie File Delete
+
+| Environment Variable | Details |
+| ------------------------------- | ------------------------------------------------------------ |
+| `radarr_eventtype` | `MovieFileDelete` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
+| `radarr_moviefile_deletereason` | Reason for deletion |
+| `radarr_movie_id` | Internal ID of the movie |
+| `radarr_movie_title` | Title of the movie |
+| `radarr_movie_year` | Release year of the movie |
+| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) |
+| `radarr_movie_genres` | \|-delimited list of genres for the movie |
+| `radarr_movie_tags` | Tags set for the movie |
+| `radarr_movie_path` | Full path to the movie |
+| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
+| `radarr_movie_tmdbid` | TMDb ID for the movie |
+| `radarr_movie_overview` | Overview/description of the movie |
+| `radarr_moviefile_id` | Internal ID of the movie file |
+| `radarr_moviefile_relativepath` | Path to the movie file, relative to the movie path |
+| `radarr_moviefile_path` | Full path to the movie file |
+| `radarr_moviefile_size` | Size of the movie file |
+| `radarr_moviefile_quality` | Quality name of the release, as detected by Radarr |
+| `radarr_moviefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions |
+| `radarr_moviefile_releasegroup` | Release group (empty if unknown) |
+| `radarr_moviefile_scenename` | Original release name (empty if unknown) |
+
## On Health Check
| Environment Variable | Details |
| ----------------------------- | ------------------------------------------------------------ |
| `radarr_eventtype` | `HealthIssue` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
| `radarr_health_issue_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) |
| `radarr_health_issue_message` | Message from the health issue |
| `radarr_health_issue_type` | Area that failed and triggered the health issue |
| `radarr_health_issue_wiki` | Wiki URL (empty if does not exist) |
+## On Health Restored
+
+| Environment Variable | Details |
+| --------------------------------- | ------------------------------------------------------------ |
+| `radarr_eventtype` | `HealthRestored` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
+| `radarr_health_restored_level` | Type of health issue that was restored (`Ok`, `Notice`, `Warning`, or `Error`) |
+| `radarr_health_restored_message` | Message from the health issue that was restored |
+| `radarr_health_restored_type` | Area that triggered the health issue that was restored |
+| `radarr_health_restored_wiki` | Wiki URL (empty if does not exist) |
+
## On Application Update
| Environment Variable | Details |
| ------------------------------- | ------------------------------------ |
| `radarr_eventtype` | `ApplicationUpdate` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
| `radarr_update_message` | Message from Update |
| `radarr_update_newversion` | Version Radarr updated to (string) |
| `radarr_update_previousversion` | Version Radarr updated from (string) |
+## On Manual Interaction Required
+
+| Environment Variable | Details |
+| ------------------------------- | ------------------------------------------------------------ |
+| `radarr_eventtype` | `ManualInteractionRequired` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
+| `radarr_movie_id` | Internal ID of the movie |
+| `radarr_movie_title` | Title of the movie |
+| `radarr_movie_year` | Release year of the movie |
+| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) |
+| `radarr_movie_genres` | \|-delimited list of genres for the movie |
+| `radarr_movie_tags` | Tags set for the movie |
+| `radarr_movie_path` | Full path to the movie |
+| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) |
+| `radarr_movie_tmdbid` | TMDb ID for the movie |
+| `radarr_movie_overview` | Overview/description of the movie |
+| `radarr_download_client` | Download client (empty if unknown) |
+| `radarr_download_client_type` | Download client type (empty if unknown) |
+| `radarr_download_id` | Download ID (empty if unknown) |
+| `radarr_download_size` | Total size of the download item |
+| `radarr_download_title` | Title of the download item |
+
## On Test
When adding the script to Radarr and clicking 'Test,' the script will be invoked with the following parameters. The script should be able to gracefully ignore any unsupported event type.
-| Environment Variable | Details |
-| -------------------- | ------- |
-| `radarr_eventtype` | `Test` |
+| Environment Variable | Details |
+| ----------------------- | ------------------------------------- |
+| `radarr_eventtype` | `Test` |
+| `radarr_instancename` | Instance name from Settings > General |
+| `radarr_applicationurl` | Application URL from Settings > General |
diff --git a/radarr/environment-variables.md b/radarr/environment-variables.md
index 46fef3930..e9b64a276 100644
--- a/radarr/environment-variables.md
+++ b/radarr/environment-variables.md
@@ -2,7 +2,7 @@
title: Radarr Environment Variables
description: Complete guide to Radarr environment variables for configuration management including Docker, database, authentication, and server settings
published: true
-date: 2025-12-16T17:03:58.213Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, docker, installation, configuration, postgres, environment-variables
editor: markdown
dateCreated: 2025-09-06T22:32:10.936Z
@@ -36,6 +36,7 @@ The config namespaces are shared between all Servarr apps and correspond to the
| `AuthenticationEnabled` | `AUTH` | `ENABLED` | `RADARR__AUTH__ENABLED` |
| `AuthenticationMethod` | `AUTH` | `METHOD` | `RADARR__AUTH__METHOD` |
| `AuthenticationRequired` | `AUTH` | `REQUIRED` | `RADARR__AUTH__REQUIRED` |
+| `TrustCgnatIpAddresses` | `AUTH` | `TRUSTCGNATIPADDRESSES` | `RADARR__AUTH__TRUSTCGNATIPADDRESSES` |
| `LogLevel` | `LOG` | `LEVEL` | `RADARR__LOG__LEVEL` |
| `FilterSentryEvents` | `LOG` | `FILTERSENTRYEVENTS` | `RADARR__LOG__FILTERSENTRYEVENTS` |
| `LogRotate` | `LOG` | `ROTATE` | `RADARR__LOG__ROTATE` |
@@ -47,13 +48,15 @@ The config namespaces are shared between all Servarr apps and correspond to the
| `SyslogServer` | `LOG` | `SYSLOGSERVER` | `RADARR__LOG__SYSLOGSERVER` |
| `SyslogPort` | `LOG` | `SYSLOGPORT` | `RADARR__LOG__SYSLOGPORT` |
| `SyslogLevel` | `LOG` | `SYSLOGLEVEL` | `RADARR__LOG__SYSLOGLEVEL` |
-| `DbEnabled` | `LOG` | `DBENABLED` | `RADARR__LOG__DBENABLED` |
+| `LogDbEnabled` | `LOG` | `DBENABLED` | `RADARR__LOG__DBENABLED` |
| `PostgresHost` | `POSTGRES` | `HOST` | `RADARR__POSTGRES__HOST` |
| `PostgresPort` | `POSTGRES` | `PORT` | `RADARR__POSTGRES__PORT` |
| `PostgresUser` | `POSTGRES` | `USER` | `RADARR__POSTGRES__USER` |
| `PostgresPassword` | `POSTGRES` | `PASSWORD` | `RADARR__POSTGRES__PASSWORD` |
| `PostgresMainDb` | `POSTGRES` | `MAINDB` | `RADARR__POSTGRES__MAINDB` |
| `PostgresLogDb` | `POSTGRES` | `LOGDB` | `RADARR__POSTGRES__LOGDB` |
+| `PostgresMainDbConnectionString` | `POSTGRES` | `MAINDBCONNECTIONSTRING` | `RADARR__POSTGRES__MAINDBCONNECTIONSTRING` |
+| `PostgresLogDbConnectionString` | `POSTGRES` | `LOGDBCONNECTIONSTRING` | `RADARR__POSTGRES__LOGDBCONNECTIONSTRING` |
| `UrlBase` | `SERVER` | `URLBASE` | `RADARR__SERVER__URLBASE` |
| `BindAddress` | `SERVER` | `BINDADDRESS` | `RADARR__SERVER__BINDADDRESS` |
| `Port` | `SERVER` | `PORT` | `RADARR__SERVER__PORT` |
diff --git a/radarr/faq.md b/radarr/faq.md
index 002732807..e87810bd6 100644
--- a/radarr/faq.md
+++ b/radarr/faq.md
@@ -2,7 +2,7 @@
title: Radarr FAQ
description: Radarr FAQ
published: true
-date: 2025-09-12T22:47:21.936Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, troubleshooting, faq
editor: markdown
dateCreated: 2021-05-16T20:44:27.778Z
@@ -110,7 +110,7 @@ If Radarr is exposed so that the UI can be accessed from outside your local netw
**As of Radarr v5, Authentication is Mandatory.**
-- `AuthenticationType` and `AuthenticationMethod` are mandatory required attributes in the configuration file.
+- `AuthenticationRequired` and `AuthenticationMethod` are mandatory required attributes in the configuration file.
### Authentication Method
@@ -123,8 +123,8 @@ If Radarr is exposed so that the UI can be accessed from outside your local netw
### Authentication Required
- If you do not expose the app externally and/or do not wish to have auth required for local (e.g. LAN (i.e. Link Local, [Class A, Class C, or Class B](https://en.wikipedia.org/wiki/Classful_network#Classful_addressing_definition) addresses)) access then change in Settings => General Security => Authentication Required to `Disabled For Local Addresses`
- - The config file equivalent of this is `DisabledForLocalAddresses`
-- `Enabled` is also a valid value
+ - The config file equivalent of this is `DisabledForLocalAddresses`
+- `Enabled` is also a valid value
## What is Minimum Availability
diff --git a/radarr/installation/multiple-instances.md b/radarr/installation/multiple-instances.md
index 459827b35..844f5bf3d 100644
--- a/radarr/installation/multiple-instances.md
+++ b/radarr/installation/multiple-instances.md
@@ -2,7 +2,7 @@
title: Radarr Multiple Instances
description: Requirements and how to install multiple instances of Radarr
published: true
-date: 2024-07-13T15:28:02.725Z
+date: 2026-06-07T00:00:00.000Z
tags: installation, radarr
editor: markdown
dateCreated: 2023-07-03T20:12:10.189Z
@@ -121,8 +121,9 @@ separate locations. {.is-warning}
2. Start Radarr-4k (Service or Tray App)
3. Open up Radarr-4k and Navigate within the app to [Settings => General => Host](/radarr/settings/#host)
4. Change `Port Number` from `7878` to a different port e.g. `7879` so Radarr and Radarr4k do not conflict
-5. You should now be able to start both apps
-6. Continue to [Dealing with Updates](#dealing-with-updates)
+5. Change the `Instance Name` to something that identifies this instance, e.g. `Radarr-4K`. The instance name must contain `Radarr` (case-insensitive). This name is shown in the browser tab and used in notifications.
+6. You should now be able to start both apps
+7. Continue to [Dealing with Updates](#dealing-with-updates)
### Dealing with Updates
diff --git a/radarr/installation/reverse-proxy.md b/radarr/installation/reverse-proxy.md
index 451000b3e..403fd1862 100644
--- a/radarr/installation/reverse-proxy.md
+++ b/radarr/installation/reverse-proxy.md
@@ -2,7 +2,7 @@
title: Radarr Reverse Proxy
description: Configuring reverse proxy setup for Radarr with nginx, Apache, and other web servers
published: true
-date: 2024-01-04T16:42:39.425Z
+date: 2026-06-07T00:00:00.000Z
tags: reverse-proxy, nginx, apache, web-server, configuration, radarr
editor: markdown
dateCreated: 2023-07-03T20:12:15.231Z
@@ -19,7 +19,7 @@ Sample config examples for configuring Radarr to be accessible from the outside
Add the following configuration to `nginx.conf` located in the root of your Nginx configuration. The code block should be added inside the `server context`. [Full example of a typical Nginx configuration](https://www.nginx.com/resources/wiki/start/topics/examples/full/)
-> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` or `proxy_set_header Host $http_host` {.is-warning}
+> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning}
```nginx
location ^~ /radarr {
@@ -65,7 +65,7 @@ By default Nginx includes the `sites-enabled` folder. You can check this in `ngi
> For this configuration it is recommended to set baseurl to '' (empty). This configuration assumes you are using the default `7878` and Radarr is accessible on the localhost (127.0.0.1). For this configuration the subdomain `radarr` is chosen (line 5). {.is-info}
-> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` or `proxy_set_header Host $http_host` {.is-warning}
+> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning}
```nginx
server {
diff --git a/radarr/library.md b/radarr/library.md
index f673b129c..58ddef9e1 100644
--- a/radarr/library.md
+++ b/radarr/library.md
@@ -2,7 +2,7 @@
title: Radarr Library
description: Manage your movie collection, monitor status, and organize film library in Radarr
published: true
-date: 2022-11-14T15:04:06.364Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, library, movies, management, collection, organization
editor: markdown
dateCreated: 2021-05-25T01:24:18.386Z
@@ -46,6 +46,8 @@ dateCreated: 2021-05-25T01:24:18.386Z
- In Cinemas
- Released
- Title \[contains\] (String)
+ - Original Title \[contains\] (String)
+ - Original Language (Enum Languages)
- Release Status (Enum)
- TBA
- Announced
@@ -61,15 +63,21 @@ dateCreated: 2021-05-25T01:24:18.386Z
- In Cinemas (static DateTime, relative TimeDelta)
- Physical Release (static DateTime, relative TimeDelta)
- Digital Release (static DateTime, relative TimeDelta)
+ - Release Date (static DateTime, relative TimeDelta)
- Runtime (Int)
- Path \[contains\] (String)
- Size on Disk (Int)
- Genres \[contains\] (Enum Genres)
+ - Keywords \[contain\] (Array)
+ - Release Groups (Array)
- TMDB Rating (Float)
- TMDB Votes (Int)
- - IMDb Rating
- - Tomato Rating
- - IMDb Votes
+ - IMDb Rating (Float)
+ - IMDb Votes (Int)
+ - Rotten Tomatoes Rating (Float)
+ - Trakt Rating (Float)
+ - Trakt Votes (Int)
+ - Popularity (Float)
- Certification (Enum Rating (PG-13, R, etc))
- Tags \[contain\] (Enum Tags)
diff --git a/radarr/postgres-setup.md b/radarr/postgres-setup.md
index 426806291..39e854365 100644
--- a/radarr/postgres-setup.md
+++ b/radarr/postgres-setup.md
@@ -2,7 +2,7 @@
title: Radarr Configuring PostgreSQL Database
description: Configuring Radarr with a Postgres Database
published: true
-date: 2025-05-29T21:30:30.766Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, postgres, database, installation
editor: markdown
dateCreated: 2022-01-10T15:42:34.178Z
@@ -70,6 +70,16 @@ If you want to specify a database name then should also include the following co
LogDbName
```
+Alternatively, if you need to pass a full Postgres connection string (e.g. to include additional parameters like `sslmode`), you can use the connection string options **instead of** the host/user/password/port settings above. Both must be provided if either is set:
+
+```xml
+Host=postgres14;Database=radarr-main;Username=qstick;Password=qstick;Port=5432
+Host=postgres14;Database=radarr-log;Username=qstick;Password=qstick;Port=5432
+```
+
+> You cannot mix connection string settings and host/user/password/port settings — use one approach or the other, not both.
+{.is-warning}
+
Only **after creating** both databases you can start the Radarr migration from SQLite to Postgres.
## Migrating data
diff --git a/radarr/quick-start-guide.md b/radarr/quick-start-guide.md
index 531c3bda6..e90ed2af2 100644
--- a/radarr/quick-start-guide.md
+++ b/radarr/quick-start-guide.md
@@ -2,7 +2,7 @@
title: Radarr Quick Start Guide
description: Step-by-step guide to setting up and configuring Radarr for movie management
published: true
-date: 2023-10-08T19:12:23.566Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, quick-start, setup, configuration, guide, installation, movies
editor: markdown
dateCreated: 2021-06-20T20:05:44.814Z
@@ -326,7 +326,7 @@ When you see the movie you want click on it.
> For More Information on TMDB's Dates that impact the below Availabilities See [How Does Radarr Determine the Year of the Movie](#how-does-radarr-determine-the-year-of-a-movie)
{.is-info}
- - **Announced**: Radarr shall consider movies available as soon as they are added to Radarr. This setting is recommended if you have good private trackers (or really good public ones, e.g. rarbg.to) that do not have fakes.
+ - **Announced**: Radarr shall consider movies available as soon as they are added to Radarr. This setting is recommended if you have good private trackers that do not have fakes.
- **In Cinemas**: Radarr shall consider movies available as soon as movies hit cinemas (Theatrical Date on TMDb) This option is not recommended.
- **Released**: Radarr shall consider movies available as soon as the Blu-Ray or streaming version is released (Digital and Physical dates on TMDb) This option is recommended and likely should be combined with an Availability Delay of `-14` or `-21` days.
- If TMDb is not populated with a date, it is assumed 90 days after `Theatrical Date` (Oldest in theater's date) the movie is available in web or physical services.
diff --git a/radarr/settings.md b/radarr/settings.md
index 1378f8736..91f799717 100644
--- a/radarr/settings.md
+++ b/radarr/settings.md
@@ -2,7 +2,7 @@
title: Radarr Settings
description: Description of Radarr's Settings Menus
published: true
-date: 2025-01-03T03:39:01.266Z
+date: 2026-06-07T00:00:00.000Z
tags: settings, configuration, radarr, profiles, quality, indexers
editor: markdown
dateCreated: 2021-05-29T15:57:25.304Z
@@ -147,12 +147,14 @@ Also, note that for each individual settings page, there are some options at the
- The characters are: `:` `\` `/` `>` `<` `?` `*` `|` `"`
- Colon (`:`) Replacement - This setting will dictate how Radarr handles colons within the movie file. This is only available when Replace Illegal Characters is enabled.
+ - Smart Replace - Uses a dash when a colon is followed by a space (`": "` → `" - "`), and a dash otherwise (`":"` → `"-"`). This is the default.
+ - Example: Movie,The.mkv => Movie - The.mkv
- Delete - Self explanatory
- Example: Movie,The.mkv => MovieThe.mkv
- Replace with Dash - Removes the colon and adds a dash in its place
- Example: Movie,The.mkv => Movie-The.mkv
- - Replace with Space - Removes the colon and adds a space in its place
- - Example: Movie,The.mkv => Movie The.mkv
+ - Replace with Space Dash - Removes the colon and adds a space dash in its place
+ - Example: Movie,The.mkv => Movie -The.mkv
- Replace with Space Dash Space - self explanatory
- Example: Movie,The.mkv => Movie - The.mkv
@@ -177,10 +179,13 @@ Also, note that for each individual settings page, there are some options at the
- `{Movie Title:DE}` = Titel des Films
- `{Movie CleanTitle}` = The Movies Title!
- `{Movie TitleThe}` = Movie's Title!, The
+- `{Movie CleanTitleThe}` = Movies Title!, The
- `{Movie OriginalTitle}` = Τίτλος ταινίας
- `{Movie CleanOriginalTitle}` = Τίτλος ταινίας
- `{Movie TitleFirstCharacter}` = S
- `{Movie Collection}` = The Movie Collection
+- `{Movie CollectionThe}` = Movie Collection, The
+- `{Movie CleanCollectionThe}` = Movie Collection, The
- `{Movie Certification}` = R
- `{Release Year}` = 2009
@@ -197,7 +202,7 @@ Also, note that for each individual settings page, there are some options at the
### Movie IDs
- `{ImdbId}` = tt12345
-- `{Tmdbid}` = 123456
+- `{TmdbId}` = 123456
> Imdb Tags used in Plex naming format will conditionally hide when value is blank `{imdb-{ImdbId}}` {.is-info}
@@ -205,6 +210,8 @@ Also, note that for each individual settings page, there are some options at the
- `{Quality Full}` = HDTV 720p Proper
- `{Quality Title}` = HDTV 720p
+- `{Quality Proper}` = Proper
+- `{Quality Real}` = REAL
### Media Info
@@ -213,11 +220,14 @@ Also, note that for each individual settings page, there are some options at the
- `{MediaInfo AudioCodec}` = DTS
- `{MediaInfo AudioChannels}` = 5.1
- `{MediaInfo AudioLanguages}` = \[EN+DE\]
+- `{MediaInfo AudioLanguagesAll}` = \[EN+DE\]
- `{MediaInfo SubtitleLanguages}` = \[EN\]
+- `{MediaInfo SubtitleLanguagesAll}` = \[EN\]
- `{MediaInfo VideoCodec}` = x264
- `{MediaInfo VideoBitDepth}` = 8
- `{MediaInfo VideoDynamicRange}` = HDR
- `{MediaInfo VideoDynamicRangeType}` = DV HDR10
+- `{MediaInfo 3D}` = 3D
> `MediaInfo Full`, `AudioLanguages`, and `SubtitleLanguages` do not currently support a `:EN+DE` suffix allowed in Sonarr to filter the languages included in the filename. There is an open [issue](https://github.com/Radarr/Radarr/issues/4710) regarding this.
~~`MediaInfo Full`, `AudioLanguages`, and `SubtitleLanguages` support a `:EN+DE` suffix allowing you to filter the languages included in the filename. Use `-DE` to exclude specific languages. Appending + (e.g.: `:EN+`) will output `[EN]`,`[EN+--]` or `[--]` depending on excluded languages. For example - `{MediaInfo Full:EN+DE}`.~~
@@ -263,16 +273,20 @@ Here you will set the naming convention for the folder that contains the season
- `{Movie Title:DE}` = FileTitle
- `{Movie CleanTitle}` = Movie Title
- `{Movie TitleThe}` = Movie Title, The
+- `{Movie CleanTitleThe}` = Movie Title, The
- `{Movie OriginalTitle}` = Τίτλος ταινίας
+- `{Movie CleanOriginalTitle}` = Τίτλος ταινίας
- `{Movie TitleFirstCharacter}` = S
- `{Movie Collection}` = The Movie Collection
+- `{Movie CollectionThe}` = Movie Collection, The
+- `{Movie CleanCollectionThe}` = Movie Collection, The
- `{Movie Certification}` = R
- `{Release Year}` = 2009
### Movie ID
- `{ImdbId}` = tt12345
-- `{Tmdbid}` = 123456
+- `{TmdbId}` = 123456
## Folders
@@ -847,8 +861,8 @@ Connections are how you want Radarr to communicate with the outside world.
## Connection Triggers
- On Grab - Be notified when movies are available for download and has been sent to a download client
-- On Import - Be notified when movies are successfully imported
-- On Upgrade - Be notified when movies are upgraded to a better quality
+- On File Import - Be notified when movies are successfully imported
+- On File Upgrade - Be notified when movies are upgraded to a better quality
- On Rename - Be notified when movies are renamed
- On Movie Added - Be notified when movies are added to Radarr's library to manage or monitor
- On Movie Delete - Be notified when movies are deleted
@@ -856,7 +870,9 @@ Connections are how you want Radarr to communicate with the outside world.
- On Movie File Delete For Upgrade - Be notified when movie files are deleted for upgrades
- On Health Issue - Be notified on health check failures
- Include Health Warnings - Be notified on health warnings in addition to errors.
+- On Health Restored - Be notified when a previously reported health issue is resolved
- On Application Update - Be notified when Radarr gets updated to a new version
+- On Manual Interaction Required - Be notified when manual interaction is required for a download
# Metadata
diff --git a/radarr/supported.md b/radarr/supported.md
index baf71502a..5904f2b1d 100644
--- a/radarr/supported.md
+++ b/radarr/supported.md
@@ -2,7 +2,7 @@
title: Radarr Supported
description: Comprehensive list of supported indexers, download clients, and services for Radarr
published: true
-date: 2024-06-16T13:47:46.803Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, supported, indexers, download-clients, services, compatibility
editor: markdown
dateCreated: 2021-06-23T07:55:24.002Z
@@ -28,6 +28,8 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
- [Refer to the Settings Page](/radarr/settings#download-clients)
- Flood {#flood}
- [Refer to the Settings Page](/radarr/settings#download-clients)
+- Freebox Download {#torrentfreeboxdownload}
+ - [Refer to the Settings Page](/radarr/settings#download-clients)
- Hadouken {#hadouken}
- [Refer to the Settings Page](/radarr/settings#download-clients)
- NZBGet {#nzbget}
@@ -64,9 +66,6 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
- [Refer to the Settings Page](/radarr/settings#indexer-settings)
- Newznab is a standardized API used by many usenet indexing sites. Many presets are available, but all require an API key to be accessible.
- Indexer Applications like [Prowlarr](/prowlarr) and [NZBHydra2](https://github.com/theotherp/nzbhydra2) can provide advanced capabilities such as stat tracking.
-- omgwtfnzbs {#omgwtfnzbs}
- - A defunct legacy implementation of a private usenet indexer. Use Newznab instead.
- - [Refer to the Settings Page](/radarr/settings#indexer-settings)
## Torrents
@@ -109,7 +108,7 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
{#notification}
-- Boxcar {#boxcar}
+- Apprise {#apprise}
- Custom Script {#customscript}
- This allows you to make a custom script for when a particular action happens this script will run. See [Custom Scripts](/radarr/custom-scripts) for more details.
- Discord {#discord}
@@ -119,7 +118,7 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
> You can use a "pretty address" like `SomePrettyName ` {.is-info}
-- Emby {#mediabrowser}
+- Emby / Jellyfin {#mediabrowser}
- Gotify {#gotify}
- Join {#join}
- Kodi {#xbmc}
@@ -127,6 +126,7 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
- Mailgun {#mailgun}
- Notifiarr {#notifiarr}
- See the entry on [Useful Tools - Notifiarr](/useful-tools#notifiarr-fka-discord-notifier)
+- ntfy.sh {#ntfy}
- Plex Media Server {#plexserver}
- The server for your self hosted Plex system, Enabling this is much like Kodi will allow you to push an update to your plex server notifying it that a new/upgraded movie is available.
- This is rarely needed and is only required if Plex is unable to watch the file system for changes.
@@ -137,7 +137,10 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
- Pushbullet {#pushbullet}
- Pushcut {#pushcut}
- Pushover {#pushover}
+- Pushsafer {#pushsafer}
- SendGrid {#sendgrid}
+- Signal {#signal}
+- Simplepush {#simplepush}
- Slack {#slack}
- Synology Indexer {#synologyindexer}
- Telegram {#telegram}
@@ -164,6 +167,8 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
- Requires: v4.1.0.6176+
- Simply add a Plex watchlist for the authenticated Plex user to Radarr. Note that it's required that your list contain movies on it.
- To have multiple user's watchlists you'll need to add each user's lists and authenticate with their Plex user.
+- Plex Watchlist RSS {#plexrss}
+ - Add a Plex watchlist via an RSS feed URL.
- Radarr {#radarrimport}
- TRaSH has [a guide](https://trash-guides.info/Radarr/Tips/Sync-2-radarr-sonarr/) for syncing two instances
- RSS List {#rssimport}
@@ -191,6 +196,8 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
```
+- Simkl User Watchlist {#simkl}
+ - Add movies from your Simkl watchlist.
- StevenLu Custom {#stevenluimport}
- Allows you to create custom movies lists in json format.
Your feed requires for each movie either a `title` or an `imdb_id`, both can be provided.
@@ -245,6 +252,8 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica
- Emby (Legacy) {#mediabrowsermetadata}
- Enable - Enable metadata file creation for this metadata type
- Movie Metadata - Enable metadata file creation for this metadata type
+- Kometa {#kometametadata}
+ - Deprecated - This metadata consumer has been deprecated
- Kodi (XBMC) / Emby {#xbmcmetadata}
- Enable - Enable metadata file creation for this metadata type
- Movie Metadata - Create a `.nfo` with the movie metadata
diff --git a/radarr/system.md b/radarr/system.md
index 5362e6cf7..55f95bd67 100644
--- a/radarr/system.md
+++ b/radarr/system.md
@@ -2,7 +2,7 @@
title: Radarr System
description: System information, logs, scheduled tasks, and status monitoring for Radarr administration and troubleshooting
published: true
-date: 2023-10-26T10:56:09.737Z
+date: 2026-06-07T00:00:00.000Z
tags: system, administration, logs, tasks, status, radarr
editor: markdown
dateCreated: 2021-05-25T02:28:35.194Z
@@ -34,7 +34,8 @@ dateCreated: 2021-05-25T02:28:35.194Z
- [Proxy Failed Test](#proxy-failed-test)
- [System Time is off by more than 1 day](#system-time-is-off-by-more-than-1-day)
- [PTP Indexer Settings Out of Date](#ptp-indexer-settings-out-of-date)
- - [Mono and x86 builds are ending](#mono-and-x86-builds-are-ending)
+ - [Invalid API Key](#invalid-api-key)
+ - [Package Maintainer Message](#package-maintainer-message)
- [Download Clients](#download-clients)
- [No download client is available](#no-download-client-is-available)
- [Unable to communicate with download client](#unable-to-communicate-with-download-client)
@@ -47,26 +48,29 @@ dateCreated: 2021-05-25T02:28:35.194Z
- [Permissions Error](#permissions-error)
- [Remote File was removed part way through processing](#remote-file-was-removed-part-way-through-processing)
- [Remote Path is Used and Import Failed](#remote-path-is-used-and-import-failed)
+ - [Download Client Sorting Enabled](#download-client-sorting-enabled)
- [Completed/Failed Download Handling](#completedfailed-download-handling)
- [Completed Download Handling is disabled](#completed-download-handling-is-disabled)
- [Download Client Removes Completed Downloads](#download-client-removes-completed-downloads)
- [Indexers](#indexers)
- [No indexers available with automatic search enabled, Radarr will not provide any automatic search results](#no-indexers-available-with-automatic-search-enabled-radarr-will-not-provide-any-automatic-search-results)
- [No indexers available with RSS sync enabled, Radarr will not grab new releases automatically](#no-indexers-available-with-rss-sync-enabled-radarr-will-not-grab-new-releases-automatically)
- - [No indexers are enabled](#no-indexers-are-enabled)
- - [Enabled indexers do not support searching](#enabled-indexers-do-not-support-searching)
- [No indexers available with Interactive Search Enabled](#no-indexers-available-with-interactive-search-enabled)
- [Indexers are unavailable due to failures](#indexers-are-unavailable-due-to-failures)
- [Jackett All Endpoint Used](#jackett-all-endpoint-used)
- [Solutions](#solutions)
+ - [Invalid Indexer Download Client Setting](#invalid-indexer-download-client-setting)
- [Movie Folders](#movie-folders)
- [Missing Root Folder](#missing-root-folder)
- [Movie Path Mount is Read Only](#movie-path-mount-is-read-only)
- [Movies](#movies)
- [Movie was removed from TMDb](#movie-was-removed-from-tmdb)
- [Lists are unavailable due to failures](#lists-are-unavailable-due-to-failures)
+ - [Import List Missing Root Folder](#import-list-missing-root-folder)
- [Notifications](#notifications)
- - [Discord as Slack Notification](#discord-as-slack-notification)
+ - [Notifications are unavailable due to failures](#notifications-are-unavailable-due-to-failures)
+ - [Discord as Slack Notification](#discord-as-slack-notification)
+ - [Cannot Write Recycle Bin](#cannot-write-recycle-bin)
- [Disk Space](#disk-space)
- [About](#about)
- [More Info](#more-info)
@@ -287,9 +291,17 @@ Note: you will also need to add the websocket directive to your radarr configura
- The following PassThePopcorn indexers have deprecated settings and should be updated.
-#### Mono and x86 builds are ending
+#### Invalid API Key
-- Mono and x86 builds are no longer be supported with v4. If you are receiving this error then you are running the mono version of the application or the x86 version. Unfortunately, due to increasing difficulty in development support for these legacy versions we will be discontinuing their support and thus releases for them going forward. Thus it is advised you upgrade to a supported Operating System that does not require neither x86 nor mono. You may also be able to explore using Docker for your needs.
+{#invalid-api-key}
+
+- Your API key is too short. The API key must be at least 20 characters long. You can update it in Settings => General or in the config file.
+
+#### Package Maintainer Message
+
+{#package-maintainer-message}
+
+- Your package maintainer has provided a message. This is typically used to communicate important information about your Radarr installation or package.
### Download Clients
@@ -375,6 +387,12 @@ Note: you will also need to add the websocket directive to your radarr configura
- Check your logs for more info; Refer to our Troubleshooting Guides
+#### Download Client Sorting Enabled
+
+{#download-folder-and-library-folder-not-different-folders}
+
+- Your download client has sorting enabled. Sorting will reorganize downloaded files in ways that may conflict with Radarr's import logic. Disable sorting in your download client settings.
+
### Completed/Failed Download Handling
#### Completed Download Handling is disabled
@@ -403,14 +421,6 @@ Note: you will also need to add the websocket directive to your radarr configura
- Radarr uses the RSS feed to pick up new releases as they come along. More info on that here
- To correct this issue go to Settings => Indexers, select an indexer you have and enable RSS Sync
-#### No indexers are enabled
-
-- Radarr requires indexers to be able to discover new releases. Please read the wiki on instructions how to add indexers.
-
-#### Enabled indexers do not support searching
-
-- None of the indexers you have enabled support searching. This means Radarr will only be able to find new releases via the RSS feeds. But searching for movies (either Automatic Search or Manual Search) will never return any results. Obviously, the only way to remedy it is to add another indexer.
-
#### No indexers available with Interactive Search Enabled
- None of the indexers you have enabled support interactive searching. This means the application will only be able to find new releases via the RSS feeds or an automatic search.
@@ -440,6 +450,12 @@ Note: you will also need to add the websocket directive to your radarr configura
- Check out [Prowlarr](/prowlarr) which can sync indexers to \*Arr and from the Lidarr/Radarr/Readarr development team.
- Check out [NZBHydra2](https://github.com/theotherp/nzbhydra2) which can sync indexers to \*Arr. But do not use their single aggregate endpoint and use `multi` if sync will be used.
+#### Invalid Indexer Download Client Setting
+
+{#invalid-indexer-download-client-setting}
+
+- One or more of your indexers has a download client configured that no longer exists or is disabled. Go to Settings => Indexers and update or clear the download client assigned to the affected indexer(s).
+
### Movie Folders
#### Missing Root Folder
@@ -493,12 +509,31 @@ A mount containing a movie path is read only and is not writable by the user Rad
- Typically this simply means that Radarr is no longer able to communicate via API or via logging in to your chosen list provider. Your best bet if the problem persists is to contact them in order to rule them out, as their systems maybe overloaded from time to time.
- Review System => Events filtered for Warning (Warning & Errors) to see the historical failures or check logs for details.
+#### Import List Missing Root Folder
+
+{#import-list-missing-root-folder}
+
+- One or more of your import lists is pointing to a root folder that does not exist or is no longer available. Go to Settings => Import Lists and update the root folder path for the affected list(s).
+
### Notifications
-### Discord as Slack Notification
+#### Notifications are unavailable due to failures
+
+{#notifications-are-unavailable-due-to-failures}
+
+- One or more of your configured notifications is unavailable due to failures. Radarr has temporarily stopped sending notifications to the affected provider(s). Review System => Events for details on the failures or check the logs.
+- If you no longer use the notification connection, disable it in Radarr to prevent the errors.
+
+#### Discord as Slack Notification
- You have Discord configured to use a Slack webhook. This is not advised and the native Discord functionality should be used instead. If you're receiving this that likely means you just configured this by following an outdated guide. Please advise the guide author to update their steps.
+### Cannot Write Recycle Bin
+
+{#cannot-write-recycle-bin}
+
+- The recycle bin path configured in Settings => Media Management is not writable by the user Radarr is running as. Correct the permissions on the recycle bin folder or choose a different path.
+
## Disk Space
- This section will show you available disk space
@@ -536,6 +571,7 @@ A mount containing a movie path is read only and is not writable by the user Rad
- Housekeeping - On the displayed schedule in the UI this will dust out all the cobwebs, sweeps and vacuums the floors, mops, shines, and even makes nice neat little folded notes just for you. But does not take out the trash. That it just was not paid enough for.
- Import List Sync - On the displayed schedule in the UI this will run your Lists and import any possible new movies. More info about lists can be found Settings => Lists.
- Messaging Cleanup - On the displayed schedule in the UI this cleans up those messages that appear in the bottom left corner of Radarr
+- Refresh Collections - This goes through and refreshes all the metadata for all collections.
- Refresh Monitored Downloads - This goes through and refreshes the downloads queue located under Activity. Essentially pinging your download client to check for finished downloads.
- Refresh Movie - This goes through and refreshes all the metadata for all monitored and unmonitored movies
- RSS Sync - This will run the RSS Sync. This can be changed in settings => options. More information on the RSS function can be found on our FAQ
diff --git a/radarr/tips-and-tricks.md b/radarr/tips-and-tricks.md
index 03f4fbc2c..2d4777db4 100644
--- a/radarr/tips-and-tricks.md
+++ b/radarr/tips-and-tricks.md
@@ -2,7 +2,7 @@
title: Radarr Tips and Tricks
description: Advanced tips and tricks for optimizing Radarr configuration and workflow
published: true
-date: 2025-05-24T19:18:45.779Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, tips, tricks, configuration, optimization, workflow
editor: markdown
dateCreated: 2021-08-14T15:12:58.934Z
@@ -79,7 +79,7 @@ This will move all of your files into the new directories.
If you need to clean up empty directories, this command will do that:
-`for /f "usebackq delims=" %d in ("dir /ad/b/s | sort /R") do rd "%d"`
+`for /f "usebackq delims=" %d in (`dir /ad/b/s | sort /R`) do rd "%d"`
## Windows Powershell
diff --git a/radarr/troubleshooting.md b/radarr/troubleshooting.md
index ff8b9302a..6ccdcb59e 100644
--- a/radarr/troubleshooting.md
+++ b/radarr/troubleshooting.md
@@ -2,7 +2,7 @@
title: Radarr Troubleshooting
description: Troubleshooting for Radarr including getting log files, search troubleshooting and common problems, and downloading / importing troubleshooting and common problems
published: true
-date: 2026-02-01T14:30:34.852Z
+date: 2026-06-07T00:00:00.000Z
tags: radarr, troubleshooting
editor: markdown
dateCreated: 2021-08-03T21:05:52.988Z
@@ -595,7 +595,7 @@ Adding each indexer separately It allows for fine tuning of categories on a per
Using NZBHydra2 as a single indexer entry (i.e. 1 NZBHydra2 Entry in Radarr for many indexers in NZBHydra2) rather than multiple (i.e. many NZBHydra2 entries in Radarr for many indexers in NZBHydra2) has the same problems as noted above with Jackett's `/all` endpoint.
-### Invalid response received from TMDB
+### Invalid response received from RadarrAPI
If you are performing a search, and get this error message, please check your log. If the error code is "503.ServiceUnavailable", then you have one of these issues going on:
From d11af1d5e6db9942e0cf0f0544de17b17d9256a5 Mon Sep 17 00:00:00 2001
From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
Date: Sun, 7 Jun 2026 11:47:53 -0500
Subject: [PATCH 3/8] docs(lidarr): audit develop wiki pages against current
source code
Cross-referenced every documented option, setting, env var, integration,
naming token, and health check against the current Lidarr develop-branch
source code. Edits made to 22 pages.
Key categories of change:
- environment-variables.md: corrected config-key names to match the
literal strings inside ConfigFileProvider.cs GetValueX() calls.
- system.md: aligned health-check entries with current
src/NzbDrone.Core/HealthCheck/Checks/ classes.
- custom-scripts.md: cross-referenced per-event Lidarr_* env vars
against CustomScript.cs override methods.
- supported.md: cross-referenced indexer / download client /
notification / import list / metadata class names. Lidarr-specific
ImportLists (Spotify, LastFm, MusicBrainz, etc.) verified.
- plugins.md: aligned plugin install/load mechanism documentation with
src/NzbDrone.Common/Composition/Plugin*.cs and
src/Lidarr.Api.V1/System/Plugins/. Page maintains the develop-only
nature of the plugin system (master / stable releases do NOT ship
with plugins).
- naming-guide.md: verified every documented naming token against
FileNameBuilder.cs tokenHandlers[] entries.
- faq.md: verified download decision priority order (Quality / Custom
Format Score / Protocol / Indexer Priority / Seeds / Age) against
src/NzbDrone.Core/DecisionEngine/DownloadDecisionComparer.cs.
- installation/linux.md: required runtime apt dependencies (mediainfo,
libchromaprint-tools) preserved alongside curl, sqlite3, and wget.
WikiJS frontmatter preserved on every page. date field updated to
2026-06-07T00:00:00.000Z.
---
lidarr/activity.md | 8 +-
lidarr/beets-integration.md | 6 +-
lidarr/calendar.md | 12 +--
lidarr/concepts.md | 5 +-
lidarr/custom-scripts.md | 4 +-
lidarr/environment-variables.md | 7 +-
lidarr/faq.md | 16 ++--
lidarr/import-troubleshooting.md | 6 +-
lidarr/importing-existing-library.md | 12 +--
lidarr/installation/linux.md | 5 +-
lidarr/installation/reverse-proxy.md | 4 +-
lidarr/library.md | 21 +++--
lidarr/metadata-troubleshooting.md | 6 +-
lidarr/naming-guide.md | 19 ++++-
lidarr/plugins.md | 4 +-
lidarr/postgres-setup.md | 3 +
lidarr/quick-start-guide.md | 6 +-
lidarr/settings.md | 53 +++++++-----
lidarr/supported.md | 93 ++++++++++++++++++++-
lidarr/system.md | 117 ++++++++++++++++++++++++++-
lidarr/tips-and-tricks.md | 4 +-
lidarr/wanted.md | 28 +++++--
22 files changed, 344 insertions(+), 95 deletions(-)
diff --git a/lidarr/activity.md b/lidarr/activity.md
index 26927e077..a07c06c09 100644
--- a/lidarr/activity.md
+++ b/lidarr/activity.md
@@ -2,7 +2,7 @@
title: Lidarr Activity
description: Monitor download progress, search history, and queue management in Lidarr
published: true
-date: 2026-06-06T13:48:53.842Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, activity, queue, downloads, history, monitoring
editor: markdown
dateCreated: 2021-06-14T21:35:25.390Z
@@ -26,7 +26,7 @@ Lidarr only shows items that are in the download client category configured unde
### Queue columns
-The queue table shows the following columns by default: Status, Artist, Album Title, Quality, Formats, Protocol, Download Client, Output Path, Time Left, Added, and Progress. Use **Options** to show or hide columns or change their order.
+The queue table shows the following columns by default: Status, Artist, Album Title, Quality, Formats, Time Left, and Progress. Use **Options** to show or hide columns or change their order.
### Queue statuses
@@ -54,11 +54,11 @@ Click **Options** in the queue toolbar to open Table Options:
| Option | Default | Description |
|---|---|---|
-| Page Size | 250 | Number of queue items shown per page. |
+| Page Size | 20 | Number of queue items shown per page. |
| Show Unknown Artist Items | On | Shows items in Lidarr's download client category that Lidarr can't match to any artist in your library (for example, removed artists or items added to the category manually). |
| Columns | (see below) | Choose which columns are visible and their display order. |
-Available columns: Status, Artist, Album Title, Album Release Date, Quality, Formats, Custom Format Score, Protocol, Indexer, Download Client, Release Title, Size, and Output Path.
+Available columns: Status, Artist, Album Title, Album Release Date, Quality, Formats, Custom Format Score, Protocol, Indexer, Download Client, Release Title, Size, Output Path, Time Left, Added, and Progress.
## History
diff --git a/lidarr/beets-integration.md b/lidarr/beets-integration.md
index 124257886..b0c88632c 100644
--- a/lidarr/beets-integration.md
+++ b/lidarr/beets-integration.md
@@ -2,7 +2,7 @@
title: Lidarr and beets Integration
description:
published: true
-date: 2026-05-29T13:03:01.899Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, beets
editor: markdown
dateCreated: 2026-04-26T15:17:29.688Z
@@ -46,7 +46,7 @@ In this pattern, beets runs once per import triggered by a Lidarr Custom Script.
## How it works
-Lidarr fires its **On Import / On Upgrade** event after it has moved and renamed the downloaded files into the library folder. A Custom Script registered in **Settings → Connect** receives the file paths via the `Lidarr_AddedTrackPaths` environment variable (pipe-separated). The script invokes beets against those files with a configuration that writes tags but doesn't move or copy anything.
+Lidarr fires its **On Release Import / On Upgrade** event after it has moved and renamed the downloaded files into the library folder. A Custom Script registered in **Settings → Connect** receives the file paths via the `Lidarr_AddedTrackPaths` environment variable (pipe-separated). The script invokes beets against those files with a configuration that writes tags but doesn't move or copy anything.
## Required beets configuration
@@ -128,7 +128,7 @@ foreach ($dir in $albumDirs) {
1. Go to **Settings → Connect → + Add Connection → Custom Script**.
2. Set **Name** to something descriptive, for example, `beets tag enrichment`.
3. Set **Path** to the full path of the script file.
-4. Enable **On Import** and **On Upgrade**. Leave other triggers disabled unless you specifically want beets to run on those events.
+4. Enable **On Release Import** and **On Upgrade**. Leave other triggers disabled unless you specifically want beets to run on those events.
5. Click **Test**. The script receives a test event and should exit cleanly without errors.
## Trade-offs
diff --git a/lidarr/calendar.md b/lidarr/calendar.md
index 61b670364..8205c7424 100644
--- a/lidarr/calendar.md
+++ b/lidarr/calendar.md
@@ -2,7 +2,7 @@
title: Lidarr Calendar
description: View upcoming album releases and track music release schedules
published: true
-date: 2026-05-29T13:10:48.016Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, calendar, releases, schedule, albums, music, planning
editor: markdown
dateCreated: 2021-06-14T21:35:03.094Z
@@ -18,9 +18,11 @@ Each release tile is color-coded to show its current status:
| Color | Meaning |
|---|---|
-| Green | Files on disk; Lidarr has this release. |
+| Green | All tracks downloaded; Lidarr has a complete copy of this release. |
| Blue | Monitored and upcoming; the release date is in the future. |
-| Yellow/Orange | Monitored, released, and missing; past release date but no files yet. |
+| Purple | Currently downloading; the release is in the queue or was recently grabbed. |
+| Orange/Yellow | Partially downloaded; some but not all tracks are on disk. |
+| Red | Monitored, released, and missing; past release date but no files found. |
| Grey | Unmonitored; Lidarr isn't looking for this release. |
## Navigation
@@ -55,8 +57,8 @@ The **Options** button opens the Calendar Options dialog, split into two section
| Option | Default | Description |
|---|---|---|
-| Collapse Multiple Albums | On | When more than one album from the same artist releases on the same day, collapse them into a single tile instead of showing each one. |
-| Icon for Cutoff Unmet | On | Show a visual indicator on release tiles where files exist but the quality cutoff hasn't been met. |
+| Collapse Multiple Albums | Off | When more than one album from the same artist releases on the same day, collapse them into a single tile instead of showing each one. |
+| Icon for Cutoff Unmet | Off | Show a visual indicator on release tiles where files exist but the quality cutoff hasn't been met. |
**Global** (apply across all browsers and users):
diff --git a/lidarr/concepts.md b/lidarr/concepts.md
index a570463b4..91569b617 100644
--- a/lidarr/concepts.md
+++ b/lidarr/concepts.md
@@ -2,7 +2,7 @@
title: Lidarr Concepts
description: How Lidarr models music, why MusicBrainz metadata matters, and when Lidarr is (and isn't) the right tool for your library
published: true
-date: 2026-05-29T13:00:43.061Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, releases, metadata, concepts, musicbrainz, artist
editor: markdown
dateCreated: 2026-04-18T16:48:08.649Z
@@ -33,10 +33,11 @@ Examples of `Releases`:
- EP
- Single
- Broadcast
+- Other
If something you want to manage doesn't exist as a `Release` in the metadata source, Lidarr can't handle it. Lidarr has no "add it locally only" escape hatch.
-Lidarr is audio-only. MusicBrainz marks some recordings as video (music videos, live video streams, etc.). Lidarr skips those entirely and won't search for, grab, or import a release where all tracks carry the video flag.
+Lidarr is audio-only. Releases that are recorded on video-only media formats (DVD, Blu-ray, VHS, etc.) are excluded: Lidarr filters out tracks on those media and will not import or search for a release that contains no audio tracks after that filtering.
> You can only manage `Releases` in Lidarr if they exist in third-party services.
{.is-info}
diff --git a/lidarr/custom-scripts.md b/lidarr/custom-scripts.md
index 64a915039..72403f650 100644
--- a/lidarr/custom-scripts.md
+++ b/lidarr/custom-scripts.md
@@ -2,7 +2,7 @@
title: Lidarr Custom Scripts
description: Guide for creating and implementing custom scripts for automation and integration in Lidarr
published: true
-date: 2026-05-29T13:03:38.922Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, scripts, automation, custom, integration, hooks, api
editor: markdown
dateCreated: 2021-11-24T19:22:09.331Z
@@ -21,7 +21,7 @@ Lidarr writes script output to the log files:
| Output | Log level | Log file |
|---|---|---|
| `stdout` | `Debug` | `config/logs/Lidarr.debug.txt` |
-| `stderr` | `Info` | `config/logs/Lidarr.txt` |
+| `stderr` | `Error` | `config/logs/Lidarr.txt` |
| Script trigger | `Trace` | `config/logs/Lidarr.trace.txt` |
Enable **Debug** or **Trace** logging in **Settings → General → Logging** to see script output in the log files.
diff --git a/lidarr/environment-variables.md b/lidarr/environment-variables.md
index 1c3ded36e..943387220 100644
--- a/lidarr/environment-variables.md
+++ b/lidarr/environment-variables.md
@@ -2,7 +2,7 @@
title: Lidarr Environment Variables
description: Complete guide to Lidarr environment variables for configuration management including Docker, database, authentication, and server settings
published: true
-date: 2026-05-29T13:14:55.964Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, docker, installation, scripts, postgres
editor: markdown
dateCreated: 2025-09-06T22:28:37.512Z
@@ -36,6 +36,7 @@ The config namespaces are shared between all Servarr apps and correspond to the
| `AuthenticationEnabled` | `AUTH` | `ENABLED` | `LIDARR__AUTH__ENABLED` |
| `AuthenticationMethod` | `AUTH` | `METHOD` | `LIDARR__AUTH__METHOD` |
| `AuthenticationRequired` | `AUTH` | `REQUIRED` | `LIDARR__AUTH__REQUIRED` |
+| `TrustCgnatIpAddresses` | `AUTH` | `TRUSTCGNATIPADDRESSES` | `LIDARR__AUTH__TRUSTCGNATIPADDRESSES` |
| `LogLevel` | `LOG` | `LEVEL` | `LIDARR__LOG__LEVEL` |
| `FilterSentryEvents` | `LOG` | `FILTERSENTRYEVENTS` | `LIDARR__LOG__FILTERSENTRYEVENTS` |
| `LogRotate` | `LOG` | `ROTATE` | `LIDARR__LOG__ROTATE` |
@@ -47,13 +48,15 @@ The config namespaces are shared between all Servarr apps and correspond to the
| `SyslogServer` | `LOG` | `SYSLOGSERVER` | `LIDARR__LOG__SYSLOGSERVER` |
| `SyslogPort` | `LOG` | `SYSLOGPORT` | `LIDARR__LOG__SYSLOGPORT` |
| `SyslogLevel` | `LOG` | `SYSLOGLEVEL` | `LIDARR__LOG__SYSLOGLEVEL` |
-| `DbEnabled` | `LOG` | `DBENABLED` | `LIDARR__LOG__DBENABLED` |
+| `LogDbEnabled` | `LOG` | `DBENABLED` | `LIDARR__LOG__DBENABLED` |
| `PostgresHost` | `POSTGRES` | `HOST` | `LIDARR__POSTGRES__HOST` |
| `PostgresPort` | `POSTGRES` | `PORT` | `LIDARR__POSTGRES__PORT` |
| `PostgresUser` | `POSTGRES` | `USER` | `LIDARR__POSTGRES__USER` |
| `PostgresPassword` | `POSTGRES` | `PASSWORD` | `LIDARR__POSTGRES__PASSWORD` |
| `PostgresMainDb` | `POSTGRES` | `MAINDB` | `LIDARR__POSTGRES__MAINDB` |
| `PostgresLogDb` | `POSTGRES` | `LOGDB` | `LIDARR__POSTGRES__LOGDB` |
+| `PostgresMainDbConnectionString` | `POSTGRES` | `MAINDBCONNECTIONSTRING` | `LIDARR__POSTGRES__MAINDBCONNECTIONSTRING` |
+| `PostgresLogDbConnectionString` | `POSTGRES` | `LOGDBCONNECTIONSTRING` | `LIDARR__POSTGRES__LOGDBCONNECTIONSTRING` |
| `UrlBase` | `SERVER` | `URLBASE` | `LIDARR__SERVER__URLBASE` |
| `BindAddress` | `SERVER` | `BINDADDRESS` | `LIDARR__SERVER__BINDADDRESS` |
| `Port` | `SERVER` | `PORT` | `LIDARR__SERVER__PORT` |
diff --git a/lidarr/faq.md b/lidarr/faq.md
index c4054d8b4..934b449bb 100644
--- a/lidarr/faq.md
+++ b/lidarr/faq.md
@@ -36,8 +36,8 @@ If Lidarr has been offline for a while, it pages back through each indexer to fi
Lidarr runs on one of three release branches. Pick one under **Settings → General → Updates** (show advanced):
- `master` — default, stable. Updates about monthly after testing in `develop` and `nightly`.
-- `develop` — beta. New features and fixes land here after `nightly`. Updates weekly or biweekly, tagged `pre-release` on GitHub.
-- `nightly` — alpha. Builds on every commit that passes CI. Required for plugin support (see [Plugins](/lidarr/plugins)). Expect occasional breakage and plan to recover a failed update yourself.
+- `develop` — beta. New features and fixes land here after `nightly`. Updates weekly or biweekly, tagged `pre-release` on GitHub. Plugin support is available on this branch and above (see [Plugins](/lidarr/plugins)).
+- `nightly` — alpha. Builds on every commit that passes CI. Expect occasional breakage and plan to recover a failed update yourself.
> **Switching from `nightly` or `develop` back to `master` may not be possible without restoring an older database backup.** Database schema migrations are one-way. If a newer branch introduced columns `master` doesn't know about, the older version will refuse to start with errors like *Error parsing column N*. If you already switched and need to go back, restore from a pre-switch backup.
{.is-danger}
@@ -181,7 +181,7 @@ The fix is a two-step manual rename (`Artist` → `Artist_tmp` → `Artist`) so
Lidarr recognises the following file extensions:
-`.mp2`, `.mp3`, `.m4a`, `.m4b`, `.m4p`, `.ogg`, `.oga`, `.opus`, `.wma`, `.wav`, `.wv`, `.flac`, `.ape`, `.aif`, `.aiff`
+`.mp2`, `.mp3`, `.m4a`, `.m4b`, `.m4p`, `.ogg`, `.oga`, `.opus`, `.wma`, `.wav`, `.wv`, `.flac`, `.ape`, `.aif`, `.aiff`, `.aifc`
Files with any other extension are invisible to Lidarr. It won't import, rename, or manage them.
@@ -248,19 +248,19 @@ Custom Formats score releases. Custom Scripts respond to events. They don't over
Deemix and slskd are third-party tools. Deemix is a Deezer downloader. slskd is a Soulseek daemon. Historically there was no built-in way to integrate them with Lidarr, and users cobbled together import scripts.
-**This changed with the plugin architecture.** As of the `nightly` branch, Lidarr supports third-party plugins that add indexers and download clients for streaming services, peer-to-peer networks, and other sources. This is the fully supported way to extend Lidarr's source coverage. See [Plugins](/lidarr/plugins) for install instructions and the current compatibility notes.
+**This changed with the plugin architecture.** As of the `develop` branch, Lidarr supports third-party plugins that add indexers and download clients for streaming services, peer-to-peer networks, and other sources. This is the fully supported way to extend Lidarr's source coverage. See [Plugins](/lidarr/plugins) for install instructions and the current compatibility notes.
Common community plugins cover exactly this ground: Soulseek, Deezer, Tidal, and similar. Plugin names and availability shift faster than this FAQ can track, so the Plugins page is the current reference.
-Running the plugin branch requires switching to `nightly` (see [How do I update Lidarr?](#how-do-i-update-lidarr)). Database schema migrations mean switching back to `master` or `develop` afterward requires restoring a pre-switch backup.
+Running plugins requires `develop` or `nightly` (see [How do I update Lidarr?](#how-do-i-update-lidarr)). Database schema migrations mean switching back to `master` afterward requires restoring a pre-switch backup.
### Which download clients does Lidarr support?
-Usenet (NZB): SABnzbd, NZBGet, NZBVortex, Pneumatic, usenet blackhole.
+Usenet (NZB): SABnzbd, NZBGet, NZBVortex, Pneumatic, Download Station (Synology), usenet blackhole.
-Torrent: qBittorrent, Transmission, Deluge, rTorrent / ruTorrent, uTorrent, Vuze, Flood, Hadouken, torrent blackhole.
+Torrent: qBittorrent, Transmission, Deluge, rTorrent / ruTorrent, uTorrent, Vuze, Flood, Hadouken, Aria2, Download Station (Synology), Freebox Download, torrent blackhole.
-More clients are available via [Plugins](/lidarr/plugins) on the `nightly` branch, primarily streaming-service and P2P-network clients not covered by the built-in list.
+More clients are available via [Plugins](/lidarr/plugins) on the `develop` or `nightly` branch, primarily streaming-service and P2P-network clients not covered by the built-in list.
For setup recipes, the [TRaSH Guides — Downloaders](https://trash-guides.info/Downloaders/) section covers the common clients in more depth than the Lidarr wiki does.
diff --git a/lidarr/import-troubleshooting.md b/lidarr/import-troubleshooting.md
index 32028bee9..09dbde1a6 100644
--- a/lidarr/import-troubleshooting.md
+++ b/lidarr/import-troubleshooting.md
@@ -2,7 +2,7 @@
title: Lidarr Import Troubleshooting
description: Why a download finishes but Lidarr does not import it — match-quality thresholds, the manual-import path, and when human intervention is necessary
published: true
-date: 2026-05-29T13:01:13.606Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, troubleshooting, plugins, import, matching
editor: markdown
dateCreated: 2026-04-20T13:06:15.307Z
@@ -17,7 +17,7 @@ If you haven't imported anything yet and are setting up a fresh library, start w
## Supported file types
-Lidarr only processes files with these extensions: `.mp2`, `.mp3`, `.m4a`, `.m4b`, `.m4p`, `.ogg`, `.oga`, `.opus`, `.wma`, `.wav`, `.wv`, `.flac`, `.ape`, `.aif`, `.aiff`. Lidarr ignores any other extension entirely — it won't attempt to import, rename, or track it. If Lidarr isn't picking up your files at all, confirm they have a supported extension before troubleshooting further.
+Lidarr only processes files with these extensions: `.mp2`, `.mp3`, `.m4a`, `.m4b`, `.m4p`, `.ogg`, `.oga`, `.opus`, `.wma`, `.wav`, `.wv`, `.flac`, `.ape`, `.aif`, `.aiff`, `.aifc`. Lidarr ignores any other extension entirely — it won't attempt to import, rename, or track it. If Lidarr isn't picking up your files at all, confirm they have a supported extension before troubleshooting further.
## Why Lidarr rejects an import
@@ -81,7 +81,7 @@ Fingerprinting kicks in when any of the following is true:
Whether Lidarr allows fingerprinting depends on the **Allow Fingerprinting** setting under Settings → Media Management:
- `Never` — Lidarr never fingerprints.
-- `New Files` — fingerprint new downloads only (default on most installs).
+- `For new imports only` — fingerprint new downloads only (default on most installs).
- `Always` — fingerprint even on library imports.
Fingerprinting is slower than tag-based matching and hits an external service. If downloads consistently land in a state where fingerprinting runs but doesn't rescue them, the files likely don't exist in MusicBrainz at all. No fingerprint match is possible for a release that isn't in the database.
diff --git a/lidarr/importing-existing-library.md b/lidarr/importing-existing-library.md
index 4a22e318e..461aee59b 100644
--- a/lidarr/importing-existing-library.md
+++ b/lidarr/importing-existing-library.md
@@ -2,7 +2,7 @@
title: Lidarr Importing an Existing Library
description: End-to-end guide for migrating an existing music library into Lidarr — preparation, pre-import checks, the import process itself, and post-import cleanup
published: true
-date: 2026-05-03T15:07:18.109Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, library, musicbrainz, importing, migration, tagging
editor: markdown
dateCreated: 2026-04-18T16:54:14.510Z
@@ -49,9 +49,9 @@ For example:
/music/Bob Dylan/Blood on the Tracks/02 - Simple Twist of Fate.flac
```
-This layout, combined with proper tags, gives recognition rates of 95% or better in both Lidarr and most downstream media players. Flat layouts (one folder containing many releases), grouped-by-year layouts, or layouts that split discs into separate folders will all cause mismatches or import failures.
+This layout, combined with proper tags, gives recognition rates of 95% or better in both Lidarr and most downstream media players. Flat layouts (one folder containing many releases) or grouped-by-year layouts will cause mismatches or import failures.
-Disc-subfolder layouts (`.../Release/CD1/...`, `.../Release/CD2/...`) are a common trap: Lidarr expects all tracks for a release to live under the release folder, so consolidate or flatten disc subfolders before importing.
+Disc-subfolder layouts (`.../Release/CD1/...`, `.../Release/CD2/...`) are handled natively by Lidarr's grouping logic, which recognises `CD`, `Disc`, and `Disk` subfolder markers and groups them as a single release automatically. You do not need to flatten disc subfolders before importing.
### Tagging
@@ -88,12 +88,14 @@ With files prepared and the pre-import checks done, add the library folder as a
2. Fill in the add-root-folder dialog:
- **Name** — a friendly label for this root folder.
- **Path** — the filesystem path to the library you prepared. The Lidarr user must have read and write access.
- - **Monitor*** — the default monitoring option for newly imported `Releases` (for example, all, future, latest, none). This applies to every artist and release created by the import; you can change individual artists afterwards.
+ - **Monitor*** — the default monitoring option applied to each imported artist's existing releases (All, Future, Missing, Existing, Latest, First, None). This applies to every artist created by the import; you can change individual artists afterwards.
+ - **Monitor New Items*** — controls whether future releases added to MusicBrainz for an imported artist are automatically monitored (All, None, New).
- **Quality Profile*** — the default quality profile assigned to each imported artist. Used later to decide which `Releases` are cutoff-met and what Lidarr will search for.
- **Metadata Profile*** — the default metadata profile. Controls which `Release` types (studio albums, EPs, singles, etc.) are visible on each imported artist.
+ - **Tags** — optional tags applied to every artist created by this import, useful for later filtering or automation rules.
3. Save the root folder. Lidarr begins scanning the path immediately.
-The three asterisked fields above become the defaults for every artist the import creates. You can change them on a per-artist basis later, but it's much less work to pick the right defaults up front than to batch-update hundreds of artists afterwards. In particular, `Metadata Profile` has the biggest downstream effect — a too-narrow profile will silently hide `Releases` that exist on disk.
+The asterisked fields above become the defaults for every artist the import creates. You can change them on a per-artist basis later, but it's much less work to pick the right defaults up front than to batch-update hundreds of artists afterwards. In particular, `Metadata Profile` has the biggest downstream effect — a too-narrow profile will silently hide `Releases` that exist on disk.
### What Lidarr does during the scan
diff --git a/lidarr/installation/linux.md b/lidarr/installation/linux.md
index 692f1262f..cc1f4fc9e 100644
--- a/lidarr/installation/linux.md
+++ b/lidarr/installation/linux.md
@@ -2,7 +2,7 @@
title: Lidarr Linux Installation
description: Linux installation guide for Lidarr
published: true
-date: 2026-04-20T14:18:55.254Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, installation, linux
editor: markdown
dateCreated: 2023-07-03T20:10:49.328Z
@@ -38,7 +38,7 @@ You'll need to install the binaries using the below commands.
- Ensure you have the required prerequisite packages:
```shell
-sudo apt install curl mediainfo sqlite3 libchromaprint-tools
+sudo apt install curl mediainfo sqlite3 libchromaprint-tools wget
```
> Warning: Ignoring the below prerequisites will result in a failed installation and non-functional application. {.is-warning}
@@ -98,6 +98,7 @@ After=syslog.target network.target
[Service]
User=lidarr
Group=media
+UMask=0002
Type=simple
ExecStart=/opt/Lidarr/Lidarr -nobrowser -data=/var/lib/lidarr/
diff --git a/lidarr/installation/reverse-proxy.md b/lidarr/installation/reverse-proxy.md
index 783cc62c4..0d20af3af 100644
--- a/lidarr/installation/reverse-proxy.md
+++ b/lidarr/installation/reverse-proxy.md
@@ -2,7 +2,7 @@
title: Lidarr Reverse Proxy
description:
published: true
-date: 2026-06-06T15:01:19.756Z
+date: 2026-06-07T00:00:00.000Z
tags:
editor: markdown
dateCreated: 2023-07-03T20:10:58.279Z
@@ -35,7 +35,7 @@ location ^~ /lidarr {
proxy_set_header Connection $http_connection;
}
# Allow the API External Access via NGINX
-location ~ /lidarr/api {
+location ^~ /lidarr/api {
auth_basic off;
proxy_pass http://127.0.0.1:8686;
}
diff --git a/lidarr/library.md b/lidarr/library.md
index 7595db0b1..b4eab292f 100644
--- a/lidarr/library.md
+++ b/lidarr/library.md
@@ -2,7 +2,7 @@
title: Lidarr Library
description: Managing your music library in Lidarr including artist monitoring, album tracking, and metadata management
published: true
-date: 2026-05-29T13:09:25.609Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, library, monitoring, albums, music, metadata, artists
editor: markdown
dateCreated: 2021-06-14T21:34:03.446Z
@@ -25,12 +25,10 @@ The toolbar's **View** toggle switches between four display modes:
The toolbar above the artist list contains the following actions:
-- **Update All**: refreshes metadata for every artist from the Servarr metadata server and rescans all artist folders.
+- **Update All** / **Update Filtered** / **Update Selected**: refreshes metadata for all artists, the current filtered view, or only the selected artists from the Servarr metadata server and rescans their folders.
- **RSS Sync**: polls your configured indexers' RSS feeds immediately, rather than waiting for the next scheduled sync.
-- **Search All** / **Search Filtered** / **Search Selected**: triggers an automatic search for all missing and cutoff-unmet albums across all artists, the current filtered view, or only the artists you have checked.
-- **Manual Import**: opens the manual import dialog to match files in any folder Lidarr can reach to artists and albums in your library. Use this when the automatic import pipeline hasn't picked up a download. See [Import Troubleshooting](/lidarr/import-troubleshooting) for when and how to use it.
-- **Artist Editor**: toggles mass-editor mode, letting you change the monitoring status, quality profile, metadata profile, root folder, or tags across more than one artist at once.
-- **Options**: shows or hides columns in Table view and adjusts poster/banner size in the grid views.
+- **Select Artists**: enters select mode, showing a footer with bulk-action buttons (Edit, Rename Files, Write Metadata Tags, Set App Tags, Update Monitoring, Delete) that apply to the artists you select.
+- **Options**: shows or hides columns in Table view and adjusts poster/banner/overview size in the grid views.
## Filters
@@ -39,10 +37,9 @@ The **Filter** button narrows the artist list. Built-in filters:
- **All**: every artist in the library, monitored or not.
- **Monitored**: artists with monitoring enabled.
- **Unmonitored**: artists with monitoring disabled. Lidarr won't search for new releases from these artists.
-- **Missing**: monitored artists that have at least one monitored album with no files on disk.
-- **Wanted**: monitored artists with at least one monitored album that's missing and past its release date.
-- **Cutoff Unmet**: artists where at least one album exists on disk but hasn't yet reached the quality target set in its Quality Profile.
-- **No Metadata Profile**: artists not assigned to any metadata profile.
+- **Continuing**: artists whose career status is active/continuing.
+- **Ended**: artists who are no longer releasing new music.
+- **Missing**: artists that have at least one track with no file on disk.
- **Custom Filters**: you can build and save your own filters against any combination of artist fields (monitored status, quality profile, metadata profile, path, tags, added date, and more).
## Artist detail
@@ -61,9 +58,11 @@ The Add New tab is where you search for and add artists to Lidarr. Search by nam
When adding an artist you will set:
- **Root Folder**: the parent directory under which Lidarr will create the artist's folder.
+- **Monitor**: which albums to monitor initially (All Albums, Future Albums, Missing Albums, Existing Albums, First Album, Latest Album, or None).
+- **Monitor New Items**: how to handle new releases added to the artist's discography after the artist is added (All Albums, New Albums, or None).
- **Quality Profile**: the target quality and upgrade rules for this artist's files.
- **Metadata Profile**: which release group types (Album, Single, EP, etc.) and statuses to include in the artist's library.
-- **Monitored**: whether Lidarr should actively search for missing albums.
+- **Tags**: optional tags to assign to the artist for use in custom filters and profiles.
- **Start Search for Missing Albums**: triggers an immediate search after adding, rather than waiting for the next scheduled search.
# Library Import
diff --git a/lidarr/metadata-troubleshooting.md b/lidarr/metadata-troubleshooting.md
index 9cd5ebc9d..1cf852127 100644
--- a/lidarr/metadata-troubleshooting.md
+++ b/lidarr/metadata-troubleshooting.md
@@ -2,7 +2,7 @@
title: Lidarr Metadata Troubleshooting
description: Why can't I add or update this album? Diagnose MusicBrainz metadata problems in Lidarr — propagation, unknown release statuses, matching, cache-busts
published: true
-date: 2026-05-29T13:01:49.601Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, troubleshooting, releases, metadata, musicbrainz, cache-bust
editor: markdown
dateCreated: 2026-04-20T13:04:32.647Z
@@ -94,7 +94,7 @@ If you notice this pattern for a specific artist, spot-check their MusicBrainz d
## Refresh cadence
-- **Lidarr ↔ metadata server:** every hour, at 5 minutes past the hour.
+- **Lidarr ↔ metadata server:** every 24 hours.
- **Metadata server ↔ MusicBrainz:** faster but not instant; assume hours, not minutes.
- **Cover art updates:** slowest of the three — expect days. Covers aren't pulled directly by Lidarr — see [Cover art](#cover-art) below.
@@ -123,7 +123,7 @@ Refresh Releases is the task that keeps Lidarr's local view of metadata in sync
If the refresh is causing heavy disk I/O, the setting to look at is **Rescan Artist Folder after Refresh**:
- Default is `Always`, which re-reads every file after every refresh.
-- Changing it to `Manual` resolves the I/O problem — refreshes still update metadata, they just don't re-scan files on disk.
+- Changing it to `After Manual Refresh` resolves the I/O problem — refreshes still update metadata, they just don't re-scan files on disk.
- **Don't** set it to `Never` unless every change to your library (additions, upgrades, deletions) goes through Lidarr. Lidarr won't pick up manual file changes or third-party tooling if rescans never run.
## Updating MusicBrainz
diff --git a/lidarr/naming-guide.md b/lidarr/naming-guide.md
index 1d3d66716..3ae7d2692 100644
--- a/lidarr/naming-guide.md
+++ b/lidarr/naming-guide.md
@@ -2,7 +2,7 @@
title: Lidarr File Naming Guide
description: Common file and folder naming schemes for Lidarr music organization including custom formats and multi-disc album handling
published: true
-date: 2026-05-29T13:02:16.488Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, naming, configuration
editor: markdown
dateCreated: 2024-03-30T13:23:53.095Z
@@ -55,6 +55,8 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso
| `{Artist CleanNameThe}` | Clean artist name with "The" moved to the end. |
| `{Artist Disambiguation}` | Disambiguation string from MusicBrainz, for example, `UK band`. Empty for most artists. |
| `{Artist Genre}` | First genre tag associated with the artist. |
+| `{Artist NameFirstCharacter}` | First letter of the artist name (after moving "The" to the end). Useful for alphabetical sub-folder grouping, for example, `A`, `B`, `#`. |
+| `{Artist MbId}` | MusicBrainz artist ID (UUID). |
## Album tokens
@@ -67,6 +69,7 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso
| `{Album Disambiguation}` | Disambiguation string from MusicBrainz. Useful when an artist has two albums with the same name. |
| `{Album Type}` | Release group type: Album, Single, EP, Compilation, Live, Remix, Soundtrack, etc. |
| `{Album Genre}` | First genre tag for the album. |
+| `{Album MbId}` | MusicBrainz album (release group) ID (UUID). |
| `{Release Year}` | Four-digit release year. |
## Track tokens
@@ -74,8 +77,12 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso
| Token | Description |
|---|---|
| `{Track Title}` | Track title. |
+| `{Track CleanTitle}` | Track title with illegal filesystem characters removed. |
| `{Track ArtistName}` | Track-level artist name. Useful for Various Artists compilations where each track has a different credited artist. |
+| `{Track ArtistCleanName}` | Track artist name with illegal filesystem characters removed. |
| `{Track ArtistNameThe}` | Track artist name with "The" moved to the end. |
+| `{Track ArtistCleanNameThe}` | Clean track artist name with "The" moved to the end. |
+| `{Track ArtistMbId}` | MusicBrainz ID of the track-level artist. |
| `{track:00}` | Track number zero-padded to 2 digits (01, 02 … 99). Use `{track:000}` for 3-digit padding on large releases. |
## Medium (disc) tokens
@@ -85,6 +92,7 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso
| `{medium:0}` | Disc number, single digit. |
| `{medium:00}` | Disc number zero-padded to 2 digits. |
| `{Medium Format}` | Physical format of the disc: CD, Vinyl, Digital Media, etc. |
+| `{Medium Name}` | Name of the disc as stored in MusicBrainz (for example, `Disc 1`). |
## Quality and technical tokens
@@ -92,17 +100,22 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso
|---|---|
| `{Quality Title}` | Quality profile name as defined in Lidarr (for example, FLAC, MP3-320). |
| `{Quality Full}` | Full quality string including proper/repack designation. |
+| `{Quality Proper}` | `Proper` or `Repack` when applicable; empty otherwise. |
| `{MediaInfo AudioBitRate}` | Audio bitrate (for example, 320kbps). Only available after import; blank on pre-import rename previews. |
| `{MediaInfo AudioChannels}` | Number of audio channels. |
| `{MediaInfo AudioCodec}` | Audio codec (for example, FLAC, MP3). |
| `{MediaInfo AudioSampleRate}` | Audio sample rate (for example, 44100Hz). |
+| `{MediaInfo AudioBitsPerSample}` | Bit depth of the audio (for example, 24-bit). |
## Miscellaneous tokens
| Token | Description |
|---|---|
-| `{Release Group}` | Ripping or encoding group tag from the file. |
-| `{Preferred Words}` | Matched preferred words from Release Profiles, joined by spaces. |
+| `{Release Group}` | Ripping or encoding group tag from the file. Defaults to `Lidarr` when no group tag is present and the token is used without surrounding separators. |
+| `{Original Title}` | Scene name of the file if available; falls back to the original filename without extension. |
+| `{Original Filename}` | Original filename without extension. |
+| `{Custom Formats}` | All custom formats that have "Include Custom Format when Renaming" enabled, joined by spaces. |
+| `{Custom Format}` | A specific custom format by name, for example `{Custom Format:FLAC}`. Empty when the format is not matched or not enabled for renaming. |
# Community naming conventions
diff --git a/lidarr/plugins.md b/lidarr/plugins.md
index 37d78339f..40ce42ca2 100644
--- a/lidarr/plugins.md
+++ b/lidarr/plugins.md
@@ -2,7 +2,7 @@
title: Lidarr Plugins
description: Basic Setup and Details for Plugins beta Testing Branch
published: true
-date: 2026-06-06T14:27:08.256Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, installation, plugins, configuration
editor: markdown
dateCreated: 2025-01-18T16:05:16.687Z
@@ -52,7 +52,7 @@ image: lscr.io/linuxserver/lidarr:nightly
### Post Install
- Once you have changed branches, navigate to `/system/plugins`. You will have the option to enter the URL of the GitHub repository containing the plugin. Enter the URL and select Install. You can observe the progress in the lower left corner. Installation takes a few seconds depending on your setup.
-- If `/system/plugins` doesn't appear in the menu, ensure that `/system/updates` shows that plugins has a status of `Currently Installed`.
+- If `/system/plugins` doesn't appear in the menu, ensure you are running the `nightly` build of Lidarr. The Plugins menu item is only present in the nightly branch.
## Next Steps
diff --git a/lidarr/postgres-setup.md b/lidarr/postgres-setup.md
index c3985adb0..c646cf62b 100644
--- a/lidarr/postgres-setup.md
+++ b/lidarr/postgres-setup.md
@@ -119,6 +119,7 @@ Before migrating, run Lidarr against the created Postgres databases **at least o
select setval('public."Albums_Id_seq"', (SELECT MAX("Id")+1 FROM "Albums"));
select setval('public."ArtistMetadata_Id_seq"', (SELECT MAX("Id")+1 FROM "ArtistMetadata"));
select setval('public."Artists_Id_seq"', (SELECT MAX("Id")+1 FROM "Artists"));
+ select setval('public."AutoTagging_Id_seq"', (SELECT MAX("Id")+1 FROM "AutoTagging"));
select setval('public."Blacklist_Id_seq"', (SELECT MAX("Id")+1 FROM "Blocklist"));
select setval('public."Commands_Id_seq"', (SELECT MAX("Id")+1 FROM "Commands"));
select setval('public."Config_Id_seq"', (SELECT MAX("Id")+1 FROM "Config"));
@@ -141,6 +142,7 @@ Before migrating, run Lidarr against the created Postgres databases **at least o
select setval('public."MetadataProfiles_Id_seq"', (SELECT MAX("Id")+1 FROM "MetadataProfiles"));
select setval('public."NamingConfig_Id_seq"', (SELECT MAX("Id")+1 FROM "NamingConfig"));
select setval('public."Notifications_Id_seq"', (SELECT MAX("Id")+1 FROM "Notifications"));
+ select setval('public."NotificationStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "NotificationStatus"));
select setval('public."PendingReleases_Id_seq"', (SELECT MAX("Id")+1 FROM "PendingReleases"));
select setval('public."Profiles_Id_seq"', (SELECT MAX("Id")+1 FROM "QualityProfiles"));
select setval('public."QualityDefinitions_Id_seq"', (SELECT MAX("Id")+1 FROM "QualityDefinitions"));
@@ -151,6 +153,7 @@ Before migrating, run Lidarr against the created Postgres databases **at least o
select setval('public."Tags_Id_seq"', (SELECT MAX("Id")+1 FROM "Tags"));
select setval('public."TrackFiles_Id_seq"', (SELECT MAX("Id")+1 FROM "TrackFiles"));
select setval('public."Tracks_Id_seq"', (SELECT MAX("Id")+1 FROM "Tracks"));
+ select setval('public."UpdateHistory_Id_seq"', (SELECT MAX("Id")+1 FROM "UpdateHistory"));
select setval('public."Users_Id_seq"', (SELECT MAX("Id")+1 FROM "Users"));
```
diff --git a/lidarr/quick-start-guide.md b/lidarr/quick-start-guide.md
index e29362ccf..3b763749f 100644
--- a/lidarr/quick-start-guide.md
+++ b/lidarr/quick-start-guide.md
@@ -2,7 +2,7 @@
title: Lidarr Quick Start
description: From a fresh install to your first Lidarr download in about 15 minutes
published: true
-date: 2026-05-29T12:59:41.748Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, library, setup, music, quick-start, getting-started
editor: markdown
dateCreated: 2021-06-13T06:14:53.615Z
@@ -98,10 +98,10 @@ Search for the artist you want — Lidarr looks them up in MusicBrainz. Select t

-Keep the defaults:
+Use these settings:
- **Root Folder** — the one you just created.
-- **Monitor** — None (for now).
+- **Monitor** — set to **None** (the UI default is "All Albums"; change it to None so Lidarr doesn't immediately queue everything).
- **Quality Profile** — Any.
- **Tags** — empty.
- **Start search for missing albums** — unchecked.
diff --git a/lidarr/settings.md b/lidarr/settings.md
index d5649186a..8575c6415 100644
--- a/lidarr/settings.md
+++ b/lidarr/settings.md
@@ -2,7 +2,7 @@
title: Lidarr Settings
description: Complete configuration guide for Lidarr settings including media management, profiles, quality definitions, and metadata preferences
published: true
-date: 2026-05-29T12:54:57.548Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, settings, configuration, quality, profiles, metadata, media
editor: markdown
dateCreated: 2021-06-14T21:36:07.513Z
@@ -29,6 +29,20 @@ When enabled, Lidarr renames imported track files according to the format string
Replaces characters in filenames that aren't valid on the target filesystem (for example, `: / \ * ? " < > |` on Windows). When disabled, Lidarr won't sanitize filenames and imports may fail on restricted filesystems.
+### Colon Replacement
+
+When **Replace Illegal Characters** is enabled, controls how Lidarr replaces colons (`:`) in filenames. Only visible when Replace Illegal Characters is on.
+
+| Option | Example result |
+|---|---|
+| **Delete** | Removes the colon and any following space (`Artist:Name` → `ArtistName`). |
+| **Replace with Dash** | Replaces with a dash (`Artist:Name` → `Artist-Name`). |
+| **Replace with Space Dash** | Replaces with a space-dash (`Artist: Name` → `Artist -Name`). |
+| **Replace with Space Dash Space** | Replaces with a space-dash-space (`Artist: Name` → `Artist - Name`). |
+| **Smart Replace** | Uses a dash when the colon isn't followed by a space, or a space-dash when it is (`Artist:Name` → `Artist-Name`; `Artist: Name` → `Artist - Name`). |
+
+Default: **Smart Replace**
+
## Naming Format
The format strings below use tokens to build file and folder names. For a full token reference, see the [Naming Guide](/lidarr/naming-guide).
@@ -68,8 +82,10 @@ Example: `{Artist Name}` → `/music/The Beatles/`
| **Skip Free Space Check** | Off | Skip the available disk space check before importing. Only enable this if Lidarr can't correctly detect free space (some network shares and unusual storage setups). |
| **Minimum Free Space** | 100 MB | Lidarr will refuse to import if available space in the root folder falls below this value. |
| **Use Hardlinks Instead of Copy** | On | Use hardlinks when the source and destination are on the same filesystem. Hardlinks avoid copying data and allow seeding to continue. Falls back to copy if hardlinks aren't supported. |
+| **Import Using Script** | Off | Copy files during import using a custom external script (for example, to transcode on import). When enabled, a path field appears where you enter the script location. |
+| **Import Script Path** | (empty) | Path to the script used when **Import Using Script** is enabled. Only visible when Import Using Script is on. |
| **Import Extra Files** | Off | Import sidecar files with the same base name alongside audio files at import time (for example, lyric files, NFO files, cover images). See below. |
-| **Extra File Extensions** | (empty) | Comma-separated list of file extensions to import when you enable **Import Extra Files**. Example: `lrc,nfo,jpg,png`. Don't use `*`; the code treats it as a literal character, not a wildcard, and it matches nothing. |
+| **Extra File Extensions** | srt | Comma-separated list of file extensions to import when you enable **Import Extra Files**. Example: `lrc,nfo,jpg,png`. Don't use `*`; the code treats it as a literal character, not a wildcard, and it matches nothing. |
### How Import Extra Files works
@@ -96,9 +112,12 @@ Matching files are then filtered against the configured extension list. Files th
|---|---|---|
| **Unmonitor Deleted Tracks** | Off | When something outside Lidarr deletes a track file from disk, automatically unmonitor that track. |
| **Download Propers and Repacks** | Prefer and Upgrade | How to handle proper/repack releases. **Prefer and Upgrade** grabs and upgrades to propers when found. **Don't Upgrade Automatically** includes them in scores but won't autograb. **Don't Prefer** treats them as equal to the original release. |
-| **Analyse Audio Files** | On | Read audio file metadata (bitrate, sample rate, bit depth) to improve quality detection. Disabling this makes quality detection rely solely on filename parsing. |
-| **Rescan Artist Folder after Refresh** | Always | When to rescan an artist folder after a metadata refresh. **Always** rescans every time. **After Manual Refresh** only rescans when triggered manually. **Never** disables rescanning. |
| **Watch Library for File Changes** | On | Monitor the library folder for external file changes (additions, deletions, renames). Disabling this means Lidarr only discovers changes during scheduled rescans. |
+| **Rescan Artist Folder after Refresh** | Always | When to rescan an artist folder after a metadata refresh. **Always** rescans every time. **After Manual Refresh** only rescans when triggered manually. **Never** disables rescanning. |
+| **Allow Fingerprinting** | For new imports only | Use audio fingerprinting to improve the accuracy of track matching. **Always** fingerprints all files on every scan. **For new imports only** fingerprints only newly imported files. **Never** disables fingerprinting. Note: fingerprinting reads part of each audio file and may cause high disk or network activity. |
+| **Change File Date** | None | Set the file modification date on import/rescan. **None** leaves the date unchanged. **Album Release Date** sets the file date to the album's MusicBrainz release date. |
+| **Recycle Bin** | (empty) | Path to a recycling bin folder. When Lidarr deletes files, they're moved here rather than permanently deleted. Leave empty to skip the recycle bin. |
+| **Recycle Bin Cleanup** | 7 days | Number of days before files in the recycle bin are permanently deleted. Set to `0` to disable automatic cleanup. |
## Permissions
@@ -110,13 +129,6 @@ These settings apply to Linux and macOS only. Leave disabled on Windows.
| **chmod Folder** | 755 | Octal permission mode applied to folders on import (for example, `755` = rwxr-xr-x). |
| **chown Group** | (empty) | Group to assign to imported files and folders. The Lidarr process user must be a member of this group. |
-## Recycling Bin
-
-| Setting | Default | Description |
-|---|---|---|
-| **Recycle Bin** | (empty) | Path to a recycling bin folder. When Lidarr deletes files, they're moved here rather than permanently deleted. Leave empty to skip the recycle bin. |
-| **Recycle Bin Cleanup** | 7 days | Number of days before files in the recycle bin are permanently deleted. Set to `0` to disable automatic cleanup. |
-
## Root Folders
Root folders are the top-level directories where Lidarr stores your library. Each imported artist gets a subfolder inside a root folder.
@@ -166,11 +178,10 @@ Release profiles filter and score releases based on their titles. Use them to re
| Field | Description |
|---|---|
-| **Must Contain** | Comma-separated list of terms (or regex patterns) that a release title must include. Lidarr rejects releases that don't match. |
-| **Must Not Contain** | Comma-separated list of terms a release title must not include. Lidarr rejects releases that match any term. |
-| **Preferred** | Terms with associated scores. Positive scores boost a release; negative scores penalise it. Separate terms with commas to share a score across more than one term. |
-| **Include Preferred when Renaming** | If enabled, Lidarr appends the matched preferred term to the filename during rename. Useful for tagging releases from specific groups in the filename. |
-| **Indexers** | Restrict this profile to specific indexers. Leave empty to apply to all indexers. |
+| **Enable Profile** | Whether this release profile is active. Disabled profiles are ignored during release scoring. |
+| **Must Contain** | Terms (or regex patterns) that a release title must include. Lidarr rejects releases that don't match any configured term. |
+| **Must Not Contain** | Terms a release title must not include. Lidarr rejects releases that match any term. |
+| **Indexer** | Restrict this profile to a specific indexer. Leave set to "Any" to apply to all indexers. |
| **Tags** | Restrict this profile to artists with matching tags. Leave empty to apply to all artists. |
> Release profiles apply at **grab/download time**: they filter and score releases from indexers before Lidarr sends anything to a download client. They have no effect on which MusicBrainz release (pressing, edition, format) Lidarr matches your already-downloaded files to during import. See [FAQ → Can Lidarr prefer a specific pressing or format during import?](/lidarr/faq#can-lidarr-prefer-a-specific-pressing-or-format-during-import) for the import side of this.
@@ -356,14 +367,16 @@ Click **Add (+)** and select a connection type. Most connections share these fie
| **On Grab** | Trigger when Lidarr sends a release to a download client. |
| **On Release Import** | Trigger when a downloaded release is successfully imported. |
| **On Upgrade** | Trigger when Lidarr upgrades a file to better quality. |
+| **On Download Failure** | Trigger when a download fails. |
+| **On Import Failure** | Trigger when an import fails after download. |
| **On Rename** | Trigger when Lidarr renames files. |
-| **On Artist Added** | Trigger when you add an artist to Lidarr. |
-| **On Artist Deleted** | Trigger when you remove an artist. |
-| **On Album Delete** | Trigger when Lidarr deletes an album. |
| **On Track Retag** | Trigger when audio tags are rewritten. |
+| **On Artist Add** | Trigger when you add an artist to Lidarr. |
+| **On Artist Delete** | Trigger when you remove an artist. |
+| **On Album Delete** | Trigger when Lidarr deletes an album. |
+| **On Application Update** | Trigger when Lidarr updates to a new version. |
| **On Health Issue** | Trigger when a health check fails. |
| **On Health Restored** | Trigger when a health check recovers. |
-| **On Application Update** | Trigger when Lidarr updates to a new version. |
| **Include Health Warnings** | Include `Warning`-level health issues in health notifications (not just `Error`). |
For **Custom Script** connections, see the [Custom Scripts](/lidarr/custom-scripts) page for the full list of environment variables available per event.
diff --git a/lidarr/supported.md b/lidarr/supported.md
index e22f6793d..684fd8a1c 100644
--- a/lidarr/supported.md
+++ b/lidarr/supported.md
@@ -2,7 +2,7 @@
title: Lidarr Supported
description: List of supported music indexers, trackers, and download clients compatible with Lidarr
published: true
-date: 2026-06-06T14:26:29.292Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, indexers, music, supported, download-clients, compatibility, trackers
editor: markdown
dateCreated: 2021-06-23T07:55:13.803Z
@@ -17,6 +17,9 @@ This page is the disambiguation target for all **More Info** links in the Lidarr
{#downloadclient}
+- Aria2 {#aria2}
+ - Open-source, multi-protocol download utility supporting HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
+ - [Refer to the Settings Page](/lidarr/settings#download-clients)
- Deluge {#deluge}
- Open-source, cross-platform BitTorrent client with a web UI and remote daemon.
- [Refer to the Settings Page](/lidarr/settings#download-clients)
@@ -29,6 +32,9 @@ This page is the disambiguation target for all **More Info** links in the Lidarr
- Flood {#flood}
- Modern web UI for rTorrent (and other torrent backends) with a clean interface and real-time updates.
- [Refer to the Settings Page](/lidarr/settings#download-clients)
+- Freebox Download {#torrentfreeboxdownload}
+ - Download client built into Free's Freebox home router/gateway.
+ - [Refer to the Settings Page](/lidarr/settings#download-clients)
- Hadouken {#hadouken}
- Open-source BitTorrent client with a web UI.
- [Refer to the Settings Page](/lidarr/settings#download-clients)
@@ -114,12 +120,91 @@ This page is the disambiguation target for all **More Info** links in the Lidarr
{#notification}
-- Boxcar {#boxcar}
- - iOS push notification service.
+- Apprise {#apprise}
+ - Allows notifications to be sent to many popular notification services via a single interface.
- Custom Script {#customscript}
- Runs a user-supplied script when a specified event occurs. See [Custom Scripts](/lidarr/custom-scripts) for the full list of available environment variables and example scripts.
- Discord {#discord}
- Sends notifications to a Discord channel via webhook. One of the most commonly used notification integrations.
- Email {#email}
- Sends notification emails. If you use Gmail, enable App Passwords under your Google account security settings rather than using your main password.
- > You can use a display nam
+ > You can use a display name with the address: `Your Name `
+ {.is-info}
+- Emby / Jellyfin {#mediabrowser}
+ - Notifies an Emby or Jellyfin server to refresh its music library after a track is imported or upgraded.
+- Gotify {#gotify}
+ - Self-hosted push notification server.
+- Join {#join}
+ - Push notification service for Android devices.
+- Kodi {#xbmc}
+ - Notifies a Kodi instance to refresh its music library after a track is imported or upgraded. Kodi is a free, open-source media centre application.
+- Mailgun {#mailgun}
+ - Transactional email API service for sending notification emails.
+- Notifiarr {#notifiarr}
+ - See [Useful Tools — Notifiarr](/useful-tools#notifiarr-fka-discord-notifier)
+- ntfy.sh {#ntfy}
+ - Self-hostable push notification service with a simple HTTP API.
+- Plex Media Server {#plexserver}
+ - Notifies a Plex Media Server to refresh its music library after a track is imported or upgraded.
+- Prowl {#prowl}
+ - iOS push notification service.
+- Pushbullet {#pushbullet}
+ - Cross-platform notification and file sharing service.
+- Pushcut {#pushcut}
+ - iOS app for automation and notifications.
+- Pushover {#pushover}
+ - Simple push notification service for mobile devices.
+- SendGrid {#sendgrid}
+ - Transactional email API service for sending notification emails.
+- Signal {#signal}
+ - Sends notifications via the Signal messaging app. Requires a running [Signal-CLI](https://github.com/AsamK/signal-cli) instance.
+- Simplepush {#simplepush}
+ - Simple push notification service requiring no account.
+- Slack {#slack}
+ - Sends notifications to a Slack channel via webhook.
+- Subsonic {#subsonic}
+ - Notifies a Subsonic-compatible server to update its music library.
+- Synology Indexer {#synologyindexer}
+ - Triggers a Synology NAS media indexer scan after a track is imported or upgraded.
+- Telegram {#telegram}
+ - Sends notifications to a Telegram chat or channel via a bot.
+- Twitter {#twitter}
+ - Posts notifications to a Twitter account.
+- Webhook {#webhook}
+ - Sends an HTTP POST request to a configured URL when events occur.
+
+## Lists
+
+{#importlist}
+
+- Custom List {#customlist}
+ - Import artists from a manually maintained list.
+- Headphones {#headphonesimport}
+ - Import artists from a [Headphones](https://github.com/rembo10/headphones) instance.
+- Last.fm Tag {#lastfmtag}
+ - Import artists via a Last.fm genre or style tag.
+- Last.fm User {#lastfmuser}
+ - Import artists from a Last.fm user's listening history or loved tracks.
+- Lidarr {#lidarrimport}
+ - Sync monitored artists from another Lidarr instance.
+- Lidarr Lists {#lidarrlists}
+ - Import artists from curated Lidarr community lists.
+- MusicBrainz Series {#musicbrainzseries}
+ - Import artists belonging to a [MusicBrainz Series](https://musicbrainz.org/doc/Series).
+- Spotify Followed Artists {#spotifyfollowedartists}
+ - Import artists you follow on Spotify.
+- Spotify Playlists {#spotifyplaylist}
+ - Import artists from your Spotify playlists.
+- Spotify Saved Albums {#spotifysavedalbums}
+ - Import artists from your Spotify saved albums.
+
+## Metadata
+
+{#metadata}
+
+- Kodi (XBMC) / Emby {#xbmcmetadata}
+ - Generates `.nfo` sidecar files for artist and album folders, compatible with Kodi and Emby/Jellyfin.
+- Roksbox {#roksboxmetadata}
+ - Generates metadata files compatible with Roksbox media players.
+- WDTV {#wdtvmetadata}
+ - Generates metadata files compatible with WD TV media players.
diff --git a/lidarr/system.md b/lidarr/system.md
index e341d193e..0ad8e4d03 100644
--- a/lidarr/system.md
+++ b/lidarr/system.md
@@ -2,7 +2,7 @@
title: Lidarr System
description: System information, logs, scheduled tasks, and status monitoring for Lidarr administration and troubleshooting
published: true
-date: 2026-05-29T12:55:50.781Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, system, logs, administration, tasks, status
editor: markdown
dateCreated: 2021-06-14T21:36:28.225Z
@@ -21,7 +21,9 @@ dateCreated: 2021-06-14T21:36:28.225Z
- [Currently installed mono version is old and unsupported](#currently-installed-mono-version-is-old-and-unsupported)
- [Currently installed SQLite version isn't supported](#currently-installed-sqlite-version-is-not-supported)
- [New update is available](#new-update-is-available)
+ - [Can't install update because startup folder is in an App Translocation folder (macOS)](#cannot-install-update-because-startup-folder-is-in-an-app-translocation-folder-macos)
- [Can't install update because startup folder isn't writable by the user](#cannot-install-update-because-startup-folder-is-not-writable-by-the-user)
+ - [Can't install update because UI folder isn't writable by the user](#cannot-install-update-because-ui-folder-is-not-writable-by-the-user)
- [Updating won't be possible to prevent deleting AppData on Update](#updating-will-not-be-possible-to-prevent-deleting-appdata-on-update)
- [Branch is for a previous version](#branch-is-for-a-previous-version)
- [Couldn't connect to signalR](#could-not-connect-to-signalr)
@@ -33,7 +35,11 @@ dateCreated: 2021-06-14T21:36:28.225Z
- [System Time is off by more than 1 day](#system-time-is-off-by-more-than-1-day)
- [Mono Legacy TLS enabled](#mono-legacy-tls-enabled)
- [Mono and x86 builds are ending](#mono-and-x86-builds-are-ending)
+ - [FPcalc is missing](#fpcalc-is-missing)
- [FPcalc needs updating](#fpcalc-needs-updating)
+ - [API Key is too short](#api-key-is-too-short)
+ - [Package Maintainer Message](#package-maintainer-message)
+ - [Plugins failed to load](#plugins-failed-to-load)
- [Download Clients](#download-clients)
- [No download client is available](#no-download-client-is-available)
- [Unable to communicate with download client](#unable-to-communicate-with-download-client)
@@ -46,6 +52,7 @@ dateCreated: 2021-06-14T21:36:28.225Z
- [Permissions Error](#permissions-error)
- [Remote File was removed part way through processing](#remote-file-was-removed-part-way-through-processing)
- [Remote Path is Used and Import Failed](#remote-path-is-used-and-import-failed)
+ - [Download Folder Same as Library Folder](#download-folder-same-as-library-folder)
- [Completed/Failed Download Handling](#completedfailed-download-handling)
- [Completed Download Handling is disabled](#completed-download-handling-is-disabled)
- [Download Client Removes Completed Downloads](#download-client-removes-completed-downloads)
@@ -58,9 +65,18 @@ dateCreated: 2021-06-14T21:36:28.225Z
- [Indexers are unavailable due to failures](#indexers-are-unavailable-due-to-failures)
- [Jackett All Endpoint Used](#jackett-all-endpoint-used)
- [Solutions](#solutions)
+ - [Invalid Indexer Download Client Setting](#invalid-indexer-download-client-setting)
+ - [Redacted Configured as Gazelle Indexer](#redacted-configured-as-gazelle-indexer)
- [Artist Folders](#artist-folders)
- [Missing Root Folder](#missing-root-folder)
+ - [Artist Mount is Read Only](#artist-mount-is-read-only)
+ - [Artist Removed from MusicBrainz](#artist-removed-from-musicbrainz)
+ - [Import List Missing Root Folder](#import-list-missing-root-folder)
- [Lists are unavailable due to failures](#lists-are-unavailable-due-to-failures)
+ - [Notifications](#notifications)
+ - [Notifications are unavailable due to failures](#notifications-are-unavailable-due-to-failures)
+ - [Recycling Bin](#recycling-bin)
+ - [Cannot Write to Recycle Bin](#cannot-write-to-recycle-bin)
- [Disk Space](#disk-space)
- [About](#about)
- [More Info](#more-info)
@@ -167,11 +183,21 @@ sudo systemctl start $app
> This warning won't appear if your current version is less than 14 days old.
{.is-info}
-#### Can't install update because startup folder isn't writable by the user
+#### Can’t install update because startup folder is in an App Translocation folder (macOS)
+
+{#cannot-install-update-because-startup-folder-is-in-an-app-translocation-folder.}
+
+- macOS has moved Lidarr’s startup folder into an App Translocation path. This prevents Lidarr from updating itself. Remove the quarantine attribute or move Lidarr out of the Translocation folder and re-launch it from its permanent location.
+
+#### Can’t install update because startup folder isn’t writable by the user
- This means Lidarr will be unable to update itself. You’ll have to update Lidarr manually or set the permissions on Lidarr’s Startup directory (the installation directory) to allow Lidarr to update itself.
-#### Updating won't be possible to prevent deleting AppData on Update
+#### Can’t install update because UI folder isn’t writable by the user
+
+- This means Lidarr will be unable to update itself. You’ll have to update Lidarr manually or set the permissions on Lidarr’s UI directory to allow Lidarr to update itself.
+
+#### Updating won’t be possible to prevent deleting AppData on Update
- Lidarr detected that the AppData folder sits inside the directory that contains the Lidarr binaries. Normally it would be `C:\ProgramData` for Windows and `~/.config` for Linux.
@@ -228,15 +254,21 @@ RewriteRule /(.*) ws://127.0.0.1:8686/$1 [P,L]
#### Failed to resolve the IP Address for the Configured Proxy Host
+{#proxy-failed-resolve-ip}
+
- Review your proxy settings and ensure they're accurate
- Ensure your proxy is up, running, and accessible
#### Proxy Failed Test
+{#proxy-failed-test}
+
- Your configured proxy failed to test successfully, review the HTTP error provided and/or check logs for more details.
#### System Time is off by more than 1 day
+{#system-time-off}
+
- System time is off by more than 1 day. Scheduled tasks may not run correctly until you correct the time
- Review your system time and ensure it's synced to an authoritative time server and accurate
@@ -248,6 +280,14 @@ RewriteRule /(.*) ws://127.0.0.1:8686/$1 [P,L]
- The next build of the application won't support Mono or x86. If you are receiving this error then you are running the mono version of the application or the x86 version. Due to increasing difficulty supporting these legacy versions, support and releases for them have ended. Upgrade to a supported operating system that doesn't require x86 or Mono. You may also be able to explore using Docker for your needs.
+#### FPcalc is missing
+
+{#fpcalc-missing}
+
+- Lidarr uses chromaprint audio fingerprinting to identify tracks. This depends on an external binary `fpcalc`. Audio fingerprinting has been disabled because `fpcalc` could not be found on your system.
+- Ensure the fpcalc binary bundled with Lidarr is present and executable. Look for it in Lidarr's installation directory (for example `/opt/Lidarr/fpcalc`).
+- On Linux, you may need to install `libchromaprint-tools` (Debian/Ubuntu) or the equivalent package for your distribution.
+
#### FPcalc needs updating
{#fpcalc-upgrade}
@@ -273,6 +313,27 @@ chmod +x /opt/Lidarr/fpcalc
| OpenSUSE | chromaprint-fpcalc |
| Synology | chromaprint |
+#### API Key is too short
+
+{#invalid-api-key}
+
+- Your Lidarr API key must be at least 20 characters long. Go to `Settings => General` and generate a new API key, or update the existing one to be at least 20 characters.
+
+#### Package Maintainer Message
+
+{#package-maintainer-message}
+
+- Your package maintainer has provided a message. This may be an informational notice, a warning, or an error from the team that packages Lidarr for your platform.
+
+#### Plugins failed to load
+
+{#plugins-failed-to-load}
+
+- One or more Lidarr plugins failed to load. Check the Lidarr log for details on which plugins failed and why.
+
+> Plugins are only available on the develop (pre-release) branch and are not included in stable releases.
+{.is-info}
+
### Download Clients
#### No download client is available
@@ -351,6 +412,12 @@ chmod +x /opt/Lidarr/fpcalc
- Check your logs for more info. Refer to the [Troubleshooting Guides](/lidarr/troubleshooting).
+#### Download Folder Same as Library Folder
+
+{#download-folder-and-library-folder-not-different-folders}
+
+- Your download client is configured to sort completed downloads into a folder that is the same as (or is inside) your Lidarr library/root folder. Sorting completed downloads into your library folder can cause issues. Disable sorting in your download client or choose a download destination that is separate from your library folder.
+
### Completed/Failed Download Handling
#### Completed Download Handling is disabled
@@ -415,6 +482,16 @@ chmod +x /opt/Lidarr/fpcalc
- Check out [Prowlarr](/prowlarr) which can sync indexers to Lidarr and is from the Servarr development team.
- Check out [NZBHydra2](https://github.com/theotherp/nzbhydra2) which can sync indexers to Lidarr. Don't use their single combined endpoint; use `multi` if you plan to use sync.
+#### Invalid Indexer Download Client Setting
+
+{#invalid-indexer-download-client-setting}
+
+- One or more of your indexers have a download client specified that no longer exists or is no longer enabled. Go to `Settings => Indexers` and for each affected indexer, either clear the download client setting or set it to an enabled download client.
+
+#### Redacted Configured as Gazelle Indexer
+
+- You have configured the Redacted indexer using the generic Gazelle indexer type. Use the dedicated Redacted indexer type instead (`Settings => Indexers`). Using the correct indexer type ensures better compatibility and support.
+
### Artist Folders
#### Missing Root Folder
@@ -431,6 +508,22 @@ chmod +x /opt/Lidarr/fpcalc
- Next you will receive a pop-up that states Would you like to move the Artist folders to 'root path' ? This will also state This will also rename the Artist folder per the Artist folder format in settings. Simply select No if you don't want Lidarr to move your files
- Run the Check Health Task in System => Tasks
+#### Artist Mount is Read Only
+
+{#artist-mount-ro}
+
+- A mount containing an artist folder is mounted as read-only. Lidarr cannot import files into a read-only mount. Check your mount configuration and ensure that Lidarr has write access to the artist folders listed in the health check message.
+
+#### Artist Removed from MusicBrainz
+
+- One or more artists in your library have been removed from MusicBrainz. Lidarr cannot update metadata for removed artists. Review the affected artists and either remove them from Lidarr or update them if the MusicBrainz data has moved to a different entry.
+
+#### Import List Missing Root Folder
+
+{#import-list-missing-root-folder}
+
+- One or more of your import lists reference a root folder path that does not exist or is not configured in Lidarr. Go to `Settings => Import Lists` and update the affected list(s) to use a valid root folder.
+
#### Lists are unavailable due to failures
- Typically this simply means that Lidarr is no longer able to communicate via API or via logging in to your chosen list provider. Your best bet if the problem persists is to contact them to rule them out, as their systems may be overloaded from time to time.
@@ -438,6 +531,22 @@ chmod +x /opt/Lidarr/fpcalc
- Review System => Events filtered for Warning (Warning & Errors) to see the historical failures or check logs for details.
+### Notifications
+
+#### Notifications are unavailable due to failures
+
+{#notifications-are-unavailable-due-to-failures}
+
+- One or more of your configured notification connections is failing. Lidarr will back off from attempting to contact the failing notification service and retry after a period of time. Review `System => Events` or your logs for more details on the failure.
+
+### Recycling Bin
+
+#### Cannot Write to Recycle Bin
+
+{#cannot-write-recycle-bin}
+
+- Lidarr cannot write to the configured Recycle Bin path. Check that the path exists and that Lidarr (or the user it runs as) has write permission to the directory.
+
## Disk Space
- This section will show you available disk space
@@ -468,12 +577,12 @@ chmod +x /opt/Lidarr/fpcalc
- Backup - This will run a backup of your Lidarr's database on a set schedule; find more details here. More information about backups is at System => Backups.
- Check Health - Check Health will run on the displayed schedule in the UI checking the health of your Lidarr. To see a list of possible health related issues see the Wiki Entry on Health Checks.
- - Clean Up Recycle Bin - Lidarr clears the recycling bin on the displayed schedule. This only runs if you set a recycling bin in File Management.
- Housekeeping - On the displayed schedule, Lidarr optimizes the database, removes orphaned records, and performs other routine maintenance tasks.
- Import List Sync - On the displayed schedule in the UI this will run your Lists and import any possible new artists. Find more info about lists at Settings => Lists.
- Messaging Cleanup - On the displayed schedule in the UI this cleans up those messages that appear in the bottom left corner of Lidarr
- Refresh Monitored Downloads - This goes through and refreshes the downloads queue located under Activity. Essentially pinging your download client to check for finished downloads.
- Refresh Artist - This goes through and refreshes all the metadata for all monitored and unmonitored artists
+ - Rescan Folders - This rescans all root folders for changes to the library on the displayed schedule.
- Rss Sync - This will run the RSS Sync. Change this in Settings => Options. Find more information on the RSS function in the FAQ.
> You can run all these tasks manually outside their scheduled times by hitting the icon to the far right of each of the tasks.
diff --git a/lidarr/tips-and-tricks.md b/lidarr/tips-and-tricks.md
index e81081c10..9afad8ca3 100644
--- a/lidarr/tips-and-tricks.md
+++ b/lidarr/tips-and-tricks.md
@@ -2,7 +2,7 @@
title: Lidarr Tips and Tricks
description: Advanced tips, optimization techniques, and workflow improvements for experienced Lidarr users
published: true
-date: 2026-05-29T13:00:12.430Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, tips, tricks, optimization, workflow, advanced, advanced tips
editor: markdown
dateCreated: 2021-08-14T15:15:51.656Z
@@ -166,7 +166,7 @@ If the rename has already happened and the next disk scan has not yet run, you c
After a successful manual import, Lidarr creates new track file records at the current path and the tracks are no longer considered missing.
-> **If you have a large library and renamed many folders outside Lidarr**, running a full disk scan before manual import may be faster than importing folder by folder. Go to **System → Tasks** and trigger **Rescan Artist Folders**, or use **Library → Artist Editor → Update** to run a rescan across all artists. Lidarr will discard the stale records and then re-match any files it finds at the new paths that still conform to the expected folder structure.
+> **If you have a large library and renamed many folders outside Lidarr**, running a full disk scan before manual import may be faster than importing folder by folder. Go to **System → Tasks** and trigger **Rescan Folders**, or use **Library → Artist Editor → Update** to run a rescan across all artists. Lidarr will discard the stale records and then re-match any files it finds at the new paths that still conform to the expected folder structure.
{.is-info}
## Custom Formats
diff --git a/lidarr/wanted.md b/lidarr/wanted.md
index fbb46ba25..9f5856d80 100644
--- a/lidarr/wanted.md
+++ b/lidarr/wanted.md
@@ -2,7 +2,7 @@
title: Lidarr Wanted
description: Managing wanted albums, manual searches, and download monitoring in Lidarr's Wanted section
published: true
-date: 2026-05-29T13:09:51.721Z
+date: 2026-06-07T00:00:00.000Z
tags: lidarr, wanted, monitoring, albums, search, missing
editor: markdown
dateCreated: 2021-06-14T21:35:43.417Z
@@ -19,7 +19,7 @@ The Missing tab lists every monitored album that has no files on disk. Albums ap
## Toolbar actions
- **Search Selected**: triggers an automatic search for the albums you have checked.
-- **Unmonitor Selected**: sets the checked albums to unmonitored, removing them from the Missing list without deleting anything.
+- **Unmonitor Selected** / **Monitor Selected**: toggles monitoring for the checked albums. The label changes depending on the active filter — when viewing monitored albums it shows **Unmonitor Selected**; when viewing unmonitored albums it shows **Monitor Selected**.
- **Search All**: triggers an automatic search for every album currently shown in the list. If a filter is active, only filtered results are searched.
- **Manual Import**: opens the manual import dialog, letting you match files in any accessible folder to albums in your library. Use this when you have files on disk that Lidarr hasn't picked up automatically. See [Import Troubleshooting](/lidarr/import-troubleshooting) for guidance.
- **Options**: opens Table Options to configure page size and visible columns.
@@ -29,8 +29,8 @@ The Missing tab lists every monitored album that has no files on disk. Albums ap
Each row has two action icons on the right:
-- **Search** (magnifying glass): triggers an automatic search for that album only.
-- **Manual Import** (person icon): opens manual import scoped to that album.
+- **Automatic Search** (magnifying glass): triggers an automatic search for that album only.
+- **Interactive Search** (interactive icon): opens the interactive search dialog scoped to that album, letting you browse and manually pick a release.
## Options
@@ -50,5 +50,23 @@ An album appears here when the file Lidarr has is below the **Cutoff** quality s
## Toolbar actions
- **Search Selected**: triggers an upgrade search for the checked albums.
-- **Unmonitor Selected**: disables monitoring for the checked albums, stopping Lidarr from searching for upgrades.
+- **Unmonitor Selected** / **Monitor Selected**: toggles monitoring for the checked albums. The label changes depending on the active filter — when viewing monitored albums it shows **Unmonitor Selected**; when viewing unmonitored albums it shows **Monitor Selected**.
- **Search All**: triggers an upgrade search for every album currently shown in the list.
+- **Options**: opens Table Options to configure page size and visible columns.
+- **Filter**: narrows the list, including toggling between monitored and unmonitored albums.
+
+## Per-row actions
+
+Each row has two action icons on the right:
+
+- **Automatic Search** (magnifying glass): triggers an automatic upgrade search for that album only.
+- **Interactive Search** (interactive icon): opens the interactive search dialog scoped to that album, letting you browse and manually pick a release.
+
+## Options
+
+| Option | Default | Description |
+|---|---|---|
+| Page Size | 20 | Number of albums shown per page. |
+| Columns | (see below) | Choose which columns are visible and their display order. |
+
+Available columns: Artist Name, Album Title, Album Type, Release Date, Last Searched, Actions.
From 692d5b98545a5af0ed1d333680498ec7d0662898 Mon Sep 17 00:00:00 2001
From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
Date: Sun, 7 Jun 2026 11:48:08 -0500
Subject: [PATCH 4/8] docs(prowlarr): audit develop wiki pages against current
source code
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cross-referenced every documented option, setting, env var, integration,
Cardigann YAML field, and health check against the current Prowlarr
develop-branch source code. Edits made to 13 pages.
Key categories of change:
- environment-variables.md: corrected config-key names to match the
literal strings inside ConfigFileProvider.cs GetValueX() calls.
- system.md: aligned health-check entries with current
src/NzbDrone.Core/HealthCheck/Checks/ classes.
- custom-scripts.md: cross-referenced per-event Prowlarr_* env vars
against CustomScript.cs override methods (limited set:
OnHealthIssue / OnHealthRestored / OnApplicationUpdate / OnGrab).
- supported.md: cross-referenced built-in Application sync targets
against src/NzbDrone.Core/Applications/ (LazyLibrarian, Lidarr,
Mylar, Radarr, Readarr, Sonarr, Whisparr). External tools that
implement the protocols on their side were preserved.
- cardigann-yml-definition.md: aligned YAML schema documentation
with src/NzbDrone.Core/Indexers/Definitions/Cardigann/
Cardigann*.cs definitions.
- postgres-setup.md: cosmetic markdown list-continuation
indentation fixes.
- installation/reverse-proxy.md: added per-indexer Newznab/Torznab
Apache exclusion path /prowlarr/[0-9]+/api (matches the
{id:int}/api route at NewznabController.cs:58).
NOT touched: supported-indexers.md (auto-generated by
.github/workflows/prowlarr-ci.yml — wiki is regenerated from build).
WikiJS frontmatter preserved on every page. date field updated to
2026-06-07T00:00:00.000Z.
---
prowlarr/cardigann-yml-definition.md | 65 ++++++++++++++--------
prowlarr/contributing.md | 4 +-
prowlarr/custom-scripts.md | 51 +++++++++++++----
prowlarr/environment-variables.md | 7 ++-
prowlarr/faq.md | 8 +--
prowlarr/indexers.md | 19 ++++---
prowlarr/installation/reverse-proxy.md | 5 +-
prowlarr/postgres-setup.md | 43 +++++++-------
prowlarr/search.md | 8 +--
prowlarr/settings.md | 16 ++++--
prowlarr/supported.md | 13 ++++-
prowlarr/system.md | 77 ++++++++++++++++++--------
prowlarr/troubleshooting.md | 4 +-
13 files changed, 212 insertions(+), 108 deletions(-)
diff --git a/prowlarr/cardigann-yml-definition.md b/prowlarr/cardigann-yml-definition.md
index c390ffe37..176e1885b 100644
--- a/prowlarr/cardigann-yml-definition.md
+++ b/prowlarr/cardigann-yml-definition.md
@@ -2,7 +2,7 @@
title: Prowlarr Cardigann YML Definition
description: Complete reference guide for creating Cardigann YAML indexer definitions in Prowlarr
published: true
-date: 2023-04-30T23:03:37.294Z
+date: 2026-06-07T00:00:00.000Z
tags: prowlarr, cardigann, yml, yaml, indexers, development, reference, guide
editor: markdown
dateCreated: 2021-08-14T18:19:59.428Z
@@ -63,6 +63,7 @@ dateCreated: 2021-08-14T18:19:59.428Z
- [reltime](#reltime)
- [fuzzytime](#fuzzytime)
- [htmldecode](#htmldecode)
+ - [htmlencode](#htmlencode)
- [urldecode](#urldecode)
- [urlencode](#urlencode)
- [validfilename](#validfilename)
@@ -457,6 +458,8 @@ settings:
1_0: Movies
1_1: Movies/HD
+ # NOTE: multi-select is NOT supported in Prowlarr's Cardigann implementation.
+ # It is defined here for schema reference only. Using this type will throw a runtime error.
- name: quality
type: multi-select
label: Select one or more quality
@@ -476,15 +479,15 @@ settings:
# this special type generates an info box in the indexer config that gives instructions on how to fetch a cookie
- name: info_cookie
- type: Info_cookie
+ type: info_cookie
# this special type generates an info box in the indexer config to warn that the flaresolverr app may be required
- name: info_flaresolverr
- type: Info_flaresolverr
+ type: info_flaresolverr
# this special type generates an info box in the indexer config that gives instructions on how to fetch a useragent
- name: info_useragent
- type: Info_useragent
+ type: info_useragent
```
If it's a public tracker and no config settings are needed then set `settings: []` to disable all options.
@@ -1545,27 +1548,27 @@ Note that these are only available during search queries.
.Keywords # keywords after applying the keywordsfilters
```
-the following are boolean-like variables in that they return either the string "True" or are null. Can be used in if-else-end statements.
+The following boolean-like variables are documented in the upstream Jackett Cardigann specification. **These variables are NOT implemented as template variables in Prowlarr's Cardigann engine** — they exist as internal C# properties on the search criteria objects but are never populated into the template variable dictionary. Referencing them in a YAML definition will always yield null.
```yaml
-.Query.IsBookSearch # t=book
-.Query.IsDoubanQuery # from t=tvsearch or t=movie
-.Query.IsGenreQuery # from t=tvsearch or t=movie or t=music or t=book
-.Query.IsIdSearch # Episode.IsNotNullOrWhiteSpace() || Season > 0 || IsImdbQuery || IsTvdbQuery || IsTVRageQuery || IsTraktQuery || IsTvmazeQuery || IsTmdbQuery || IsDoubanQuery || Album.IsNotNullOrWhiteSpace() || Artist.IsNotNullOrWhiteSpace() || Label.IsNotNullOrWhiteSpace() || Genre.IsNotNullOrWhiteSpace() || Track.IsNotNullOrWhiteSpace() || Author.IsNotNullOrWhiteSpace() || Title.IsNotNullOrWhiteSpace() || Publisher.IsNotNullOrWhiteSpace() || Year.HasValue
-.Query.IsImdbQuery # from t=tvsearch or t=movie
-.Query.IsMovieSearch # t=movie
-.Query.IsMusicSearch # t=music
-.Query.IsRssSearch # SearchTerm.IsNullOrWhiteSpace() && !IsIdSearch
-.Query.IsSearch # t=search
-.Query.IsTVRageQuery # from t=tvsearch
-.Query.IsTVSearch # t=tvsearch
-.Query.IsTmdbQuery # from t=tvsearch or t=movie
-.Query.IsTraktQuery # from t=tvsearch or t=movie
-.Query.IsTvdbQuery # from t=tvsearch
-.Query.IsTvmazeQuery # from t=tvsearch
+.Query.IsBookSearch # t=book (Jackett only — not available in Prowlarr templates)
+.Query.IsDoubanQuery # from t=tvsearch or t=movie (Jackett only)
+.Query.IsGenreQuery # from t=tvsearch or t=movie or t=music or t=book (Jackett only)
+.Query.IsIdSearch # (Jackett only)
+.Query.IsImdbQuery # from t=tvsearch or t=movie (Jackett only)
+.Query.IsMovieSearch # t=movie (Jackett only)
+.Query.IsMusicSearch # t=music (Jackett only)
+.Query.IsRssSearch # SearchTerm.IsNullOrWhiteSpace() && !IsIdSearch (Jackett only)
+.Query.IsSearch # t=search (Jackett only)
+.Query.IsTVRageQuery # from t=tvsearch (Jackett only)
+.Query.IsTVSearch # t=tvsearch (Jackett only)
+.Query.IsTmdbQuery # from t=tvsearch or t=movie (Jackett only)
+.Query.IsTraktQuery # from t=tvsearch or t=movie (Jackett only)
+.Query.IsTvdbQuery # from t=tvsearch (Jackett only)
+.Query.IsTvmazeQuery # from t=tvsearch (Jackett only)
```
-Note: There are several variables that are not supported are provided by Cardigann for compatibility with the Torznab specifications. These variables will always return null.
+Note: There are several variables that are not supported and are provided by Cardigann for compatibility with the Torznab specifications. These variables will always return null.
All field results are available to the following fields via the `.Result.$FieldName` variables too.
For example:
@@ -1892,12 +1895,12 @@ filters:
## reltime
-Alias for [timeago](#dateparse)
+Alias for [timeago](#timeago)
## fuzzytime
Converts a fuzzy-time *string* into a DateTime object ("ddd, dd MMM yyyy HH:mm:ss z").
-By default fuzzytime renders a USA_Date. But if you supply an argument containing "UK" then it will return a UK_Date.
+By default fuzzytime renders a USA_Date. Note: the "UK" argument for UK date format is not implemented in Prowlarr's Cardigann engine — filter args are ignored and USA date format is always used.
Fuzzytime can handle a fuzzy-time *string* such as:
```yaml
@@ -1941,6 +1944,22 @@ filters:
# result: Anne Rice's Mayfair Witches S01E01 1080p WEB-DL DD+ 5.1 H.264-GGEZ
```
+## htmlencode
+
+Converts a *string* into an HTML-encoded *string* for HTTP transmission.
+
+Example:
+
+```yaml
+# encode the string for HTML transmission
+selector: td:nth-child(2) a
+attribute: title
+filters:
+ # input: Anne Rice's Mayfair Witches
+ - name: htmlencode
+ # result: Anne Rice's Mayfair Witches
+```
+
## urldecode
Converts a *string* that has been encoded for transmission in a URL into a decoded *string*.
diff --git a/prowlarr/contributing.md b/prowlarr/contributing.md
index b47ba1746..93cff5523 100644
--- a/prowlarr/contributing.md
+++ b/prowlarr/contributing.md
@@ -2,7 +2,7 @@
title: Prowlarr Contributing
description: Guide for contributing to Prowlarr development including setup, building, testing, and submitting changes
published: true
-date: 2022-11-16T19:35:23.515Z
+date: 2026-06-07T00:00:00.000Z
tags: prowlarr, development, contributing, guide, setup
editor: markdown
dateCreated: 2021-12-11T19:42:15.627Z
@@ -177,7 +177,7 @@ Adding translations to Prowlarr requires two steps
## Adding Translation Strings in Code
-The English translation, `src/NzbDrone.Core/Localization/en.json`, serves as the source for all other translations and is managed on GitHub repo. When adding a new string to either the UI or backend a key must also be added to `en.json` along with the default value in English. This key may then be consumed as follows:
+The English translation, `src/NzbDrone.Core/Localization/Core/en.json`, serves as the source for all other translations and is managed on GitHub repo. When adding a new string to either the UI or backend a key must also be added to `en.json` along with the default value in English. This key may then be consumed as follows:
> PRs for translation of log messages will not be accepted
{.is-warning}
diff --git a/prowlarr/custom-scripts.md b/prowlarr/custom-scripts.md
index 18641a10f..685185afa 100644
--- a/prowlarr/custom-scripts.md
+++ b/prowlarr/custom-scripts.md
@@ -2,7 +2,7 @@
title: Prowlarr Custom Scripts
description: Guide for creating and implementing custom scripts for automation and integration with Prowlarr workflows
published: true
-date: 2021-12-20T16:40:47.702Z
+date: 2026-06-07T00:00:00.000Z
tags: scripts, automation, custom, integration, hooks, api, prowlarr
editor: markdown
dateCreated: 2021-06-23T06:40:30.916Z
@@ -12,7 +12,7 @@ If you're looking to trigger a custom script, you can find more details here. Sc
# Overview
-Prowlarr can execute a custom script when an episode is newly imported or renamed. Depending on the action, different parameters are supplied. Parameters are passed to the script through environment variables.
+Prowlarr can execute a custom script when a grab occurs or a health/application event fires. Depending on the action, different parameters are supplied. Parameters are passed to the script through environment variables.
## Prowlarr Logs
@@ -24,11 +24,34 @@ Note that the following will only be logged for custom scripts:
# Environment Variables
+## On Grab
+
+| Environment Variable | Details |
+| ----------------------------------- | --------------------------------------------------------------------- |
+| `prowlarr_eventtype` | `Grab` |
+| `prowlarr_instancename` | Name of the Prowlarr instance |
+| `prowlarr_applicationurl` | Application URL of Prowlarr |
+| `prowlarr_release_title` | Title of the release |
+| `prowlarr_release_indexer` | Indexer the release was grabbed from |
+| `prowlarr_release_size` | Size of the release in bytes |
+| `prowlarr_release_genres` | Genres for the release (pipe `\|` separated) |
+| `prowlarr_release_categories` | Categories for the release (pipe `\|` separated) |
+| `prowlarr_release_indexerflags` | Indexer flags for the release (pipe `\|` separated) |
+| `prowlarr_release_publishdate` | Publish date of the release (ISO 8601 UTC) |
+| `prowlarr_download_client` | Download client used for the grab |
+| `prowlarr_download_client_type` | Type of download client used |
+| `prowlarr_download_id` | Download ID from the download client |
+| `prowlarr_source` | Source application that triggered the grab |
+| `prowlarr_host` | Host of the source application |
+| `prowlarr_redirect` | Whether the grab was a redirect (`True` or `False`) |
+
## On Health Issue
| Environment Variable | Details |
| ------------------------------- | ------------------------------------------------------------ |
| `prowlarr_eventtype` | `HealthIssue` |
+| `prowlarr_instancename` | Name of the Prowlarr instance |
+| `prowlarr_applicationurl` | Application URL of Prowlarr |
| `prowlarr_health_issue_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) |
| `prowlarr_health_issue_message` | Message from the health issue |
| `prowlarr_health_issue_type` | Source of the health issue |
@@ -39,6 +62,8 @@ Note that the following will only be logged for custom scripts:
| Environment Variable | Details |
| ---------------------------------- | ------------------------------------------------------------ |
| `prowlarr_eventtype` | `HealthRestored` |
+| `prowlarr_instancename` | Name of the Prowlarr instance |
+| `prowlarr_applicationurl` | Application URL of Prowlarr |
| `prowlarr_health_restored_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) |
| `prowlarr_health_restored_message` | Message from the health issue |
| `prowlarr_health_restored_type` | Source of the health issue |
@@ -46,17 +71,21 @@ Note that the following will only be logged for custom scripts:
## On Application Update
-| Environment Variable | Details |
-| --------------------------------- | -------------------------------------- |
-| `prowlarr_eventtype` | `ApplicationUpdate` |
-| `prowlarr_update_message` | Message from the update |
-| `prowlarr_update_newversion` | Version Prowlarr updated from (string) |
-| `prowlarr_update_previousversion` | Version Prowlarr updated to (string) |
+| Environment Variable | Details |
+| --------------------------------- | ------------------------------------ |
+| `prowlarr_eventtype` | `ApplicationUpdate` |
+| `prowlarr_instancename` | Name of the Prowlarr instance |
+| `prowlarr_applicationurl` | Application URL of Prowlarr |
+| `prowlarr_update_message` | Message from the update |
+| `prowlarr_update_newversion` | Version Prowlarr updated to (string) |
+| `prowlarr_update_previousversion` | Version Prowlarr updated from (string) |
## On Test
When adding the script to Prowlarr and clicking 'Test,' the script will be invoked with the following parameters. The script should be able to gracefully ignore any unsupported event type.
-| Environment Variable | Details |
-| -------------------- | ------- |
-| `prowlarr_eventtype` | `Test` |
+| Environment Variable | Details |
+| --------------------------- | ----------------------------- |
+| `prowlarr_eventtype` | `Test` |
+| `prowlarr_instancename` | Name of the Prowlarr instance |
+| `prowlarr_applicationurl` | Application URL of Prowlarr |
diff --git a/prowlarr/environment-variables.md b/prowlarr/environment-variables.md
index 8dba1b0bf..277cbc9ad 100644
--- a/prowlarr/environment-variables.md
+++ b/prowlarr/environment-variables.md
@@ -2,7 +2,7 @@
title: Prowlarr Environment Variables
description: Complete guide to Prowlarr environment variables for configuration management including Docker, database, authentication, and server settings
published: true
-date: 2025-12-16T17:02:47.867Z
+date: 2026-06-07T00:00:00.000Z
tags: prowlarr, docker, installation, postgres
editor: markdown
dateCreated: 2025-09-06T22:30:15.859Z
@@ -36,6 +36,7 @@ The config namespaces are shared between all Servarr apps and correspond to the
| `AuthenticationEnabled` | `AUTH` | `ENABLED` | `PROWLARR__AUTH__ENABLED` |
| `AuthenticationMethod` | `AUTH` | `METHOD` | `PROWLARR__AUTH__METHOD` |
| `AuthenticationRequired` | `AUTH` | `REQUIRED` | `PROWLARR__AUTH__REQUIRED` |
+| `TrustCgnatIpAddresses` | `AUTH` | `TRUSTCGNATIPADDRESSES` | `PROWLARR__AUTH__TRUSTCGNATIPADDRESSES` |
| `LogLevel` | `LOG` | `LEVEL` | `PROWLARR__LOG__LEVEL` |
| `FilterSentryEvents` | `LOG` | `FILTERSENTRYEVENTS` | `PROWLARR__LOG__FILTERSENTRYEVENTS` |
| `LogRotate` | `LOG` | `ROTATE` | `PROWLARR__LOG__ROTATE` |
@@ -47,13 +48,15 @@ The config namespaces are shared between all Servarr apps and correspond to the
| `SyslogServer` | `LOG` | `SYSLOGSERVER` | `PROWLARR__LOG__SYSLOGSERVER` |
| `SyslogPort` | `LOG` | `SYSLOGPORT` | `PROWLARR__LOG__SYSLOGPORT` |
| `SyslogLevel` | `LOG` | `SYSLOGLEVEL` | `PROWLARR__LOG__SYSLOGLEVEL` |
-| `DbEnabled` | `LOG` | `DBENABLED` | `PROWLARR__LOG__DBENABLED` |
+| `LogDbEnabled` | `LOG` | `DBENABLED` | `PROWLARR__LOG__DBENABLED` |
| `PostgresHost` | `POSTGRES` | `HOST` | `PROWLARR__POSTGRES__HOST` |
| `PostgresPort` | `POSTGRES` | `PORT` | `PROWLARR__POSTGRES__PORT` |
| `PostgresUser` | `POSTGRES` | `USER` | `PROWLARR__POSTGRES__USER` |
| `PostgresPassword` | `POSTGRES` | `PASSWORD` | `PROWLARR__POSTGRES__PASSWORD` |
| `PostgresMainDb` | `POSTGRES` | `MAINDB` | `PROWLARR__POSTGRES__MAINDB` |
| `PostgresLogDb` | `POSTGRES` | `LOGDB` | `PROWLARR__POSTGRES__LOGDB` |
+| `PostgresMainDbConnectionString` | `POSTGRES` | `MAINDBCONNECTIONSTRING` | `PROWLARR__POSTGRES__MAINDBCONNECTIONSTRING` |
+| `PostgresLogDbConnectionString` | `POSTGRES` | `LOGDBCONNECTIONSTRING` | `PROWLARR__POSTGRES__LOGDBCONNECTIONSTRING` |
| `UrlBase` | `SERVER` | `URLBASE` | `PROWLARR__SERVER__URLBASE` |
| `BindAddress` | `SERVER` | `BINDADDRESS` | `PROWLARR__SERVER__BINDADDRESS` |
| `Port` | `SERVER` | `PORT` | `PROWLARR__SERVER__PORT` |
diff --git a/prowlarr/faq.md b/prowlarr/faq.md
index 6017a1a7a..8182f3aee 100644
--- a/prowlarr/faq.md
+++ b/prowlarr/faq.md
@@ -2,7 +2,7 @@
title: Prowlarr FAQ
description: Prowlarr FAQ
published: true
-date: 2025-09-12T22:51:38.317Z
+date: 2026-06-07T00:00:00.000Z
tags: prowlarr, troubleshooting, faq
editor: markdown
dateCreated: 2021-11-03T03:01:18.079Z
@@ -61,7 +61,7 @@ If Prowlarr is exposed so that the UI can be accessed from outside your local ne
As of Prowlarr v1, Authentication is Mandatory.
-- `AuthenticationType` and `AuthenticationMethod` are mandatory required attributes in the configuration file.
+- `AuthenticationMethod` and `AuthenticationRequired` are mandatory required attributes in the configuration file.
### Authentication Method
@@ -73,8 +73,8 @@ As of Prowlarr v1, Authentication is Mandatory.
### Authentication Required
- If you do not expose the app externally and/or do not wish to have auth required for local (e.g. LAN) access then change in Settings => General Security => Authentication Required to `Disabled For Local Addresses`
- - The config file equivalent of this is `DisabledForLocalAddresses`
-- `Enabled` is also a valid value
+ - The config file equivalent of this is `DisabledForLocalAddresses`
+- `Enabled` is also a valid value
## How do I reset Stats
diff --git a/prowlarr/indexers.md b/prowlarr/indexers.md
index 7d442f94f..c791afd6f 100644
--- a/prowlarr/indexers.md
+++ b/prowlarr/indexers.md
@@ -2,7 +2,7 @@
title: Prowlarr Indexers
description: Configure and manage indexers in Prowlarr for torrent and usenet search aggregation
published: true
-date: 2025-12-16T17:09:47.110Z
+date: 2026-06-07T00:00:00.000Z
tags: prowlarr, indexers, configuration, search, torrent, usenet, aggregation
editor: markdown
dateCreated: 2021-06-06T11:45:31.974Z
@@ -53,10 +53,10 @@ Once you've selected your indexer, there will be a pop-up containing further inf
- Name - Select a name for this indexer. When it syncs to your apps, it will add `(Prowlarr)` behind it.
- Enable - Check the box to enable this indexer.
-- Redirect - Check the box if a redirect is necessary. There are only a couple of indexers where this is required to avoid being banned. If enabled, this will pass the grab link directly to the application rather than proxying it via Prowlarr.
+- Redirect - If enabled, this will pass the grab link directly to the application rather than proxying it via Prowlarr. Redirect is **required** for all Usenet (Newznab) indexers and cannot be disabled for them. For torrent indexers it is optional and only needed for a small number of specific trackers to avoid being banned.
-> Redirect is typically only needed for a handful of very specific indexers
-{.is-info}
+> Redirect is mandatory for all Usenet indexers. Attempting to save a Usenet indexer with Redirect disabled will result in a validation error.
+{.is-warning}
- Sync Profile - Select your Sync Profile here. These can be created in [`Settings` => `Apps`](/prowlarr/settings#applications). The Standard default, profile already exists, and looks like this:
@@ -78,11 +78,16 @@ Once you've selected your indexer, there will be a pop-up containing further inf
- (Advanced Option) Additional Parameters - Additional parameters to add to the requests for this indexer.
- VIP Expiration - Enter the date in ISO format (yyyy-MM-DD) to be notified 1 week prior to expiration; otherwise leave blank
- Tags - Use tags to specify default download clients, specify Indexer Proxies, specify indexers to applications or just to organize your indexers.
-- (Advanced Option) Query Limit - If your indexer limits your API hits per day, you can enter that number here to avoid exceeding the limit.
-- (Advanced Option) Grab Limit - If your indexer limits your Grabs per day, you can enter that number here to avoid exceeding the limit. Once the grab limit is reached further queries will trigger an unhandled exception in \*Arr Apps. Other apps may very.
+- (Advanced Option) Query Limit - If your indexer limits your API hits per the configured unit, you can enter that number here to avoid exceeding the limit.
+- (Advanced Option) Grab Limit - If your indexer limits your Grabs per the configured unit, you can enter that number here to avoid exceeding the limit. Once the grab limit is reached further queries will trigger an unhandled exception in \*Arr Apps. Other apps may vary.
+- (Advanced Option) Limits Unit - The unit of time for counting Query and Grab Limits per indexer. Options are `Day` (default) or `Hour`.
- (Advanced Option) Seed Ratio - For Torrent Indexers Only: The ratio a torrent should reach before stopping, empty is app's default
- (Advanced Option) Seed Time - For Torrent Indexers Only: The time a torrent should be seeded before stopping, empty is app's default. Values are in minutes.
-- (Advanced Option) Indexer Priority - Priority of this indexer to prefer one indexer over another in release tiebreaker scenarios. 1 is highest priority and 50 is lowest priority. These priorities will sync to the \*Arr apps.
+- (Advanced Option) Pack Seed Time - For Torrent Indexers Only: The time a pack (season or discography) torrent should be seeded before stopping, empty is app's default. Values are in minutes.
+- (Advanced Option) Apps Minimum Seeders - For Torrent Indexers Only: The minimum number of seeders required by the connected apps for this indexer to grab a release. Empty uses the Sync Profile's default.
+- (Advanced Option) Prefer Magnet URL - For Torrent Indexers Only: When enabled, this indexer will prefer magnet URLs over torrent file links for grabs.
+- (Advanced Option) Indexer Priority - Priority of this indexer to prefer one indexer over another in release tiebreaker scenarios. 1 is highest priority and 50 is lowest priority, with 25 as the default. These priorities will sync to the \*Arr apps.
+- Download Client - Specify which download client is used for grabs made within Prowlarr from this indexer. Leave blank to use any available download client.
- Test your indexer, and if a green checkmark appears, you're okay to save it. When you save it, depending on your sync settings, it will be added to your apps automatically.
diff --git a/prowlarr/installation/reverse-proxy.md b/prowlarr/installation/reverse-proxy.md
index 252e124f5..203f19c83 100644
--- a/prowlarr/installation/reverse-proxy.md
+++ b/prowlarr/installation/reverse-proxy.md
@@ -2,7 +2,7 @@
title: Prowlarr Reverse Proxy
description: Configuring reverse proxy setup for Prowlarr with nginx, Apache, and other web servers
published: true
-date: 2024-01-19T23:44:51.382Z
+date: 2026-06-07T00:00:00.000Z
tags: reverse-proxy, nginx, apache, web-server, configuration, prowlarr
editor: markdown
dateCreated: 2023-07-03T20:11:34.526Z
@@ -65,7 +65,7 @@ By default Nginx includes the `sites-enabled` folder. You can check this in `ngi
> For this configuration it is recommended to set baseurl to '' (empty). This configuration assumes you are using the default `9696` and Prowlarr is accessible on the localhost (127.0.0.1). For this configuration the subdomain `prowlarr` is chosen (line 5).
{.is-info}
-> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port`
+> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host`
{.is-warning}
```nginx
@@ -116,6 +116,7 @@ ProxyPassReverse / http://127.0.0.1:9696/prowlarr/
If you implement any additional authentication through Apache, you should exclude the following paths:
- `/prowlarr/api/`
+- `/prowlarr/[0-9]+/api` (per-indexer Newznab/Torznab endpoints)
### Using SSL on the Apache reverse proxy
diff --git a/prowlarr/postgres-setup.md b/prowlarr/postgres-setup.md
index 7f193a3d2..79726576f 100644
--- a/prowlarr/postgres-setup.md
+++ b/prowlarr/postgres-setup.md
@@ -2,7 +2,7 @@
title: Prowlarr Configuring PostgreSQL Database
description: Configuring Prowlarr with a Postgres Database
published: true
-date: 2025-05-29T21:37:09.627Z
+date: 2026-06-07T00:00:00.000Z
tags: prowlarr, postgres, database, installation
editor: markdown
dateCreated: 2022-01-10T15:38:53.538Z
@@ -107,25 +107,26 @@ Before starting a migration please ensure that you have run Prowlarr against the
1. For those having the issues POST-MIGRATION from SQLite run the following:
- ```postgres
- select setval('public."ApplicationIndexerMapping_Id_seq"', (SELECT MAX("Id")+1 FROM "ApplicationIndexerMapping"));
- select setval('public."Applications_Id_seq"', (SELECT MAX("Id")+1 FROM "Applications"));
- select setval('public."ApplicationStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "ApplicationStatus"));
- select setval('public."AppSyncProfiles_Id_seq"', (SELECT MAX("Id")+1 FROM "AppSyncProfiles"));
- select setval('public."Commands_Id_seq"', (SELECT MAX("Id")+1 FROM "Commands"));
- select setval('public."Config_Id_seq"', (SELECT MAX("Id")+1 FROM "Config"));
- select setval('public."CustomFilters_Id_seq"', (SELECT MAX("Id")+1 FROM "CustomFilters"));
- select setval('public."DownloadClients_Id_seq"', (SELECT MAX("Id")+1 FROM "DownloadClients"));
- select setval('public."DownloadClientStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "DownloadClientStatus"));
- select setval('public."History_Id_seq"', (SELECT MAX("Id")+1 FROM "History"));
- select setval('public."IndexerDefinitionVersions_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerDefinitionVersions"));
- select setval('public."IndexerProxies_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerProxies"));
- select setval('public."Indexers_Id_seq"', (SELECT MAX("Id")+1 FROM "Indexers"));
- select setval('public."IndexerStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerStatus"));
- select setval('public."Notifications_Id_seq"', (SELECT MAX("Id")+1 FROM "Notifications"));
- select setval('public."ScheduledTasks_Id_seq"', (SELECT MAX("Id")+1 FROM "ScheduledTasks"));
- select setval('public."Tags_Id_seq"', (SELECT MAX("Id")+1 FROM "Tags"));
- select setval('public."Users_Id_seq"', (SELECT MAX("Id")+1 FROM "Users"));
- ```
+ ```postgres
+ select setval('public."ApplicationIndexerMapping_Id_seq"', (SELECT MAX("Id")+1 FROM "ApplicationIndexerMapping"));
+ select setval('public."Applications_Id_seq"', (SELECT MAX("Id")+1 FROM "Applications"));
+ select setval('public."ApplicationStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "ApplicationStatus"));
+ select setval('public."AppSyncProfiles_Id_seq"', (SELECT MAX("Id")+1 FROM "AppSyncProfiles"));
+ select setval('public."Commands_Id_seq"', (SELECT MAX("Id")+1 FROM "Commands"));
+ select setval('public."Config_Id_seq"', (SELECT MAX("Id")+1 FROM "Config"));
+ select setval('public."CustomFilters_Id_seq"', (SELECT MAX("Id")+1 FROM "CustomFilters"));
+ select setval('public."DownloadClients_Id_seq"', (SELECT MAX("Id")+1 FROM "DownloadClients"));
+ select setval('public."DownloadClientStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "DownloadClientStatus"));
+ select setval('public."History_Id_seq"', (SELECT MAX("Id")+1 FROM "History"));
+ select setval('public."IndexerDefinitionVersions_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerDefinitionVersions"));
+ select setval('public."IndexerProxies_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerProxies"));
+ select setval('public."Indexers_Id_seq"', (SELECT MAX("Id")+1 FROM "Indexers"));
+ select setval('public."IndexerStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerStatus"));
+ select setval('public."NotificationStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "NotificationStatus"));
+ select setval('public."Notifications_Id_seq"', (SELECT MAX("Id")+1 FROM "Notifications"));
+ select setval('public."ScheduledTasks_Id_seq"', (SELECT MAX("Id")+1 FROM "ScheduledTasks"));
+ select setval('public."Tags_Id_seq"', (SELECT MAX("Id")+1 FROM "Tags"));
+ select setval('public."Users_Id_seq"', (SELECT MAX("Id")+1 FROM "Users"));
+ ```
1. Start Prowlarr
diff --git a/prowlarr/search.md b/prowlarr/search.md
index 7c501be4d..bc8dd478c 100644
--- a/prowlarr/search.md
+++ b/prowlarr/search.md
@@ -2,7 +2,7 @@
title: Prowlarr Search
description:
published: true
-date: 2025-07-15T20:42:03.748Z
+date: 2026-06-07T00:00:00.000Z
tags: prowlarr
editor: markdown
dateCreated: 2021-06-08T23:31:53.221Z
@@ -79,6 +79,6 @@ Parameters
- `type` - the search type to perform
- `search` - Basic Text Query
- `tvsearch` - TV Query - Supports TV parameters
- - `moviesearch` - Movie Query - Supports Movie parameters
- - `audiosearch` - Audio/Music Query - Supports Music parameters
- - `booksearch` - Book Query - Supports Book parameters
+ - `movie` - Movie Query - Supports Movie parameters
+ - `music` - Audio/Music Query - Supports Music parameters
+ - `book` - Book Query - Supports Book parameters
diff --git a/prowlarr/settings.md b/prowlarr/settings.md
index 377929ade..68ef2e708 100644
--- a/prowlarr/settings.md
+++ b/prowlarr/settings.md
@@ -2,7 +2,7 @@
title: Prowlarr Settings
description: Configuration guide for Prowlarr settings including applications, indexers, notifications, and general preferences
published: true
-date: 2023-03-30T14:07:39.851Z
+date: 2026-06-07T00:00:00.000Z
tags: settings, configuration, prowlarr, indexers, applications, notifications
editor: markdown
dateCreated: 2021-06-06T15:04:48.057Z
@@ -236,7 +236,8 @@ Connections are how you want Prowlarr to communicate with the outside world.
- On Release Grab - Be notified on release grab from within Prowlarr or from the API
- Include Manual Grabs - Be notified on grabs triggered manually within Prowlarr UI
- On Health Issue - Be notified on health check failures
- - Include Health Warnings - Be notified on health warnings in addition to errors.
+- On Health Restored - Be notified when a previously reported health issue is resolved
+ - Include Health Warnings - Be notified on health warnings in addition to errors. (Applies to both On Health Issue and On Health Restored)
- On Application Update - Be notified when Prowlarr gets updated to a new version
# Tags
@@ -265,6 +266,7 @@ Click on `Settings` => `General`.
- Port Number - the port that Prowlarr runs on. It must be unique. (default: 9696)
- BaseUrl - Enter a URL base here if you are using a reverse proxy. (restart required) (default: blank)
- (Advanced Option) Instance Name - Name to use for Browser Tab and SysLog (if enabled) (restart required) (default: Prowlarr)
+- (Advanced Option) Application URL - The external URL used to access Prowlarr, including http(s)://, port, and URL base. Leave blank if not needed.
- (Advanced Option) Use SSL - Check this box if you use an https address to connect to Prowlarr. If you are using `localhost` or an IP address, this should almost NEVER be checked. (default: false)
- Launch Browser (Windows Only) - Check this box if you want a browser window to be launched when Prowlarr starts. (default: yes)
@@ -273,9 +275,12 @@ Click on `Settings` => `General`.

- Authentication - How would you like to authenticate to access your Prowlarr instance
- - None - You have no authentication to access your Prowlarr. Typically if you're the only user of your network, do not have anybody on your network that would care to access your Radarr or your Radarr is not exposed to the web
- - Basic (Browser pop-up) - This option when accessing your Prowlarr will show a small pop-up allowing you to input a Username and Password
+ - None - You have no authentication to access your Prowlarr. Typically if you're the only user of your network, do not have anybody on your network that would care to access your Prowlarr or your Prowlarr is not exposed to the web
- Forms (Login Page) - This option will have a familiar looking login screen much like other websites have to allow you to log onto your Prowlarr
+ - External - External authentication is handled by a reverse proxy. Prowlarr will trust authentication headers passed by the proxy.
+- Authentication Required - Controls which requests require authentication
+ - Enabled - All requests require authentication
+ - Disabled for Local Addresses - Requests from local network addresses bypass authentication; all remote requests still require authentication
- API Key - API key is used by outside apps accessing Prowlarr. This is secret and should not be shared with anyone. If it gets shared, you should regenerate it and update your apps.
- Certificate Validation - Change how strict HTTPS certification validation is
- Enabled - Validate all HTTPS certificates (recommended)
@@ -301,12 +306,13 @@ Proxy - This option allows you to run the information your Prowlarr pulls and se

-The default log level is `Info`. This is very basic logging. You can change it here for more detailed logging. Log files will rotate, so there is no danger of taking up too much space.
+The default log level is `Debug`. This is very basic logging. You can change it here for more detailed logging. Log files will rotate, so there is no danger of taking up too much space.
- Log level - Probably one of the most useful troubleshooting tools
- Info - This is the most basic way that Prowlarr gathers information this will include very minimal amount of information in the logs. This log file contains fatal, error, warn and info entries.
- Debug - Debug will include all the information that Info includes plus more information that can be useful. This log files contains fatal, error, warn, info and debug entries
- Trace - The most advance and detailed logging on Prowlarr, Trace will include all the information gathered by Info and Debug and more. This is the most common type of log that is going to be asked for when troubleshooting on Discord or Reddit. If you're needing help please select your log to Trace and redo the task that was giving you problems to capture the log. This log files contains fatal, error, warn, info, debug and trace entries.
+- (Advanced Option) Log Size Limit - Maximum log file size in MB before archiving. Valid range is 1-10 MB. (default: `1`)
## Analytics
diff --git a/prowlarr/supported.md b/prowlarr/supported.md
index 58457cc93..0ca32d7a4 100644
--- a/prowlarr/supported.md
+++ b/prowlarr/supported.md
@@ -2,7 +2,7 @@
title: Prowlarr Supported
description: List of supported indexers, trackers, and download clients compatible with Prowlarr
published: true
-date: 2022-10-18T19:43:50.037Z
+date: 2026-06-07T00:00:00.000Z
tags: supported, indexers, trackers, download-clients, compatibility, prowlarr
editor: markdown
dateCreated: 2021-06-23T03:06:57.769Z
@@ -30,6 +30,8 @@ Prowlarr can automatically sync indexers with various applications
- [Refer to the Settings Page](/prowlarr/settings#applications)
- Sonarr {#sonarr}
- [Refer to the Settings Page](/prowlarr/settings#applications)
+- Whisparr {#whisparr}
+ - [Refer to the Settings Page](/prowlarr/settings#applications)
# Download Clients
@@ -45,6 +47,8 @@ Prowlarr can automatically sync indexers with various applications
- [Refer to the Settings Page](/prowlarr/settings#download-clients)
- Flood {#flood}
- [Refer to the Settings Page](/prowlarr/settings#download-clients)
+- Freebox Download {#torrentfreeboxdownload}
+ - [Refer to the Settings Page](/prowlarr/settings#download-clients)
- Hadouken {#hadouken}
- [Refer to the Settings Page](/prowlarr/settings#download-clients)
- NZBGet {#nzbget}
@@ -92,7 +96,7 @@ Prowlarr can automatically sync indexers with various applications
{#notification}
-- Boxcar {#boxcar}
+- Apprise {#apprise}
- Custom Script {#customscript}
- This allows you to make a custom script for when a particular action happens this script will run. See [Custom Scripts](/prowlarr/custom-scripts) for more details.
- Discord {#discord}
@@ -102,11 +106,16 @@ Prowlarr can automatically sync indexers with various applications
- > You can use a "pretty address" like `SomePrettyName ` {.is-info}
- Gotify {#gotify}
- Join {#join}
+- Mailgun {#mailgun}
- Notifiarr {#notifiarr}
+- Ntfy {#ntfy}
- Prowl {#prowl}
- Pushbullet {#pushbullet}
+- Pushcut {#pushcut}
- Pushover {#pushover}
- SendGrid {#sendgrid}
+- Signal {#signal}
+- Simplepush {#simplepush}
- Slack {#slack}
- Telegram {#telegram}
- Twitter {#twitter}
diff --git a/prowlarr/system.md b/prowlarr/system.md
index d3bcb45ab..31149a943 100644
--- a/prowlarr/system.md
+++ b/prowlarr/system.md
@@ -2,7 +2,7 @@
title: Prowlarr System
description: System information, logs, scheduled tasks, and status monitoring for Prowlarr administration and troubleshooting
published: true
-date: 2025-08-24T14:57:37.363Z
+date: 2026-06-07T00:00:00.000Z
tags: system, administration, logs, tasks, status, prowlarr
editor: markdown
dateCreated: 2021-08-03T21:21:08.969Z
@@ -24,11 +24,9 @@ dateCreated: 2021-08-03T21:21:08.969Z
- [Failed to resolve the IP Address for the Configured Proxy Host](#failed-to-resolve-the-ip-address-for-the-configured-proxy-host)
- [Proxy Failed Test](#proxy-failed-test)
- [System Time is off by more than 1 day](#system-time-is-off-by-more-than-1-day)
+ - [Invalid API Key](#invalid-api-key)
- [Download Clients](#download-clients)
- - [No download client is available](#no-download-client-is-available)
- - [Unable to communicate with download client](#unable-to-communicate-with-download-client)
- - [Download clients are unavailable due to failure](#download-clients-are-unavailable-due-to-failure)
- - [Bad Download Client Settings](#bad-download-client-settings)
+ - [Download clients are unavailable due to failures](#download-clients-are-unavailable-due-to-failures)
- [Indexers](#indexers)
- [Indexers Have No Definition](#indexers-have-no-definition)
- [Indexers are Obsolete](#indexers-are-obsolete)
@@ -36,10 +34,17 @@ dateCreated: 2021-08-03T21:21:08.969Z
- [Obsolete due to Site Removals](#obsolete-due-to-site-removals)
- [No indexers are enabled](#no-indexers-are-enabled)
- [Indexers are unavailable due to failures](#indexers-are-unavailable-due-to-failures)
+ - [Indexers are unavailable due to failures for more than 6 hours](#indexers-are-unavailable-due-to-failures-for-more-than-6-hours)
- [Indexer VIP Expiring](#indexer-vip-expiring)
- [Indexer VIP Expired](#indexer-vip-expired)
+ - [Indexers with invalid download clients](#indexers-with-invalid-download-clients)
+ - [Indexer Proxies](#indexer-proxies)
+ - [Indexer proxies are unavailable due to failures](#indexer-proxies-are-unavailable-due-to-failures)
- [Applications](#applications)
- [Applications are unavailable due to failures](#applications-are-unavailable-due-to-failures)
+ - [Applications are unavailable due to failures for more than 6 hours](#applications-are-unavailable-due-to-failures-for-more-than-6-hours)
+ - [Notifications](#notifications)
+ - [Notifications are unavailable due to failures](#notifications-are-unavailable-due-to-failures)
- [Disk Space](#disk-space)
- [About](#about)
- [More Info](#more-info)
@@ -74,6 +79,9 @@ This page contains a list of health checks errors. These health checks are perio
> This warning will not appear if your current version is less than 14 days old
{.is-info}
+> If your installed version is more than 180 days old, this escalates from a Warning to an Error.
+{.is-warning}
+
#### Cannot install update because startup folder is not writable by the user
- This means Prowlarr will be unable to update itself. You’ll have to update Prowlarr manually or set the permissions on Prowlarr’s Startup directory (the installation directory) to allow Prowlarr to update itself.
@@ -149,31 +157,18 @@ If Prowlarr is not running on the same machine as your reverse proxy. Replace 12
- System time is off by more than 1 day. Scheduled tasks may not run correctly until the time is corrected
- Review your system time and ensure it is synced to an authoritative time server and accurate
-### Download Clients
-
-#### No download client is available
-
-- A properly configured and enabled download client is required for Prowlarr to be able to download media. Since Prowlarr supports different download clients, you should determine which best matches your requirements. If you already have a download client installed, you should configure Prowlarr to use it and create a category. See Settings => Download Client.
+#### Invalid API Key
-#### Unable to communicate with download client
+- Your Prowlarr API key is shorter than the required minimum of 20 characters. Update your API key in Settings or the config file to be at least 20 characters long.
-- Prowlarr was unable to communicate with the configured download client. Please verify if the download client is operational and double check the url. This could also indicate an authentication error.
-- This is typically due to improperly configured download client. Things you can typically check:
-- Your download clients IP Address if its on the same bare metal machine this is typically 127.0.0.1
-- The Port number of that your download client is using these are filled out with the default port number but if you've changed it you will need to have the same one entered into Prowlarr.
-- Ensure SSL encryption is not turned on if you're using both your Prowlarr instance and your download client on a local network. See the SSL FAQ entry for more information.
-- Using rutorrent requires special settings changes as it requires https.
+### Download Clients
-#### Download clients are unavailable due to failure
+#### Download clients are unavailable due to failures
-- One or more of your download clients is not responding to requests made by Prowlarr. Therefore Prowlarr has decided to temporarily stop querying the download client on it’s normal 1 minute cycle, which is normally used to track active downloads and import finished ones. However, Prowlarr will continue to attempt to send downloads to the client, but will in all likeliness fail.
+- One or more of your download clients is not responding to requests made by Prowlarr. Therefore Prowlarr has decided to temporarily stop querying the download client on its normal cycle. However, Prowlarr will continue to attempt to send downloads to the client, but will in all likelihood fail.
- You should inspect System=>Logs to see what the reason is for the failures.
- If you no longer use this download client, disable it in Prowlarr to prevent the errors.
-#### Bad Download Client Settings
-
-- The location your download client is downloading files to is causing problems. Check the logs for further information. This may be permissions or attempting to go from Windows to Linux or Linux to Windows without a remote path map.
-
### Indexers
#### Indexers Have No Definition
@@ -212,6 +207,13 @@ If Prowlarr is not running on the same machine as your reverse proxy. Replace 12
- You can prevent the warning by disabling the affected indexer.
- Run the Test on the indexer to force Prowlarr to recheck the indexer, please note that the Health Check warning will not always disappear immediately.
+#### Indexers are unavailable due to failures for more than 6 hours
+
+- One or more of your indexers has been continuously unavailable for more than 6 hours. Prowlarr will continue to back off retries for the affected indexer(s).
+- Check Events and filter for Warnings to get a quick idea of what issues have occurred historically.
+- Please inspect the logs to determine what kind of error causes the problem.
+- You can prevent the warning by disabling the affected indexer.
+
#### Indexer VIP Expiring
- Your VIP subscription or benefits to your indexer expire within the next 7 days or less based on the expiration date you configured for your indexer in Prowlarr.
@@ -220,6 +222,17 @@ If Prowlarr is not running on the same machine as your reverse proxy. Replace 12
- Your VIP subscription or benefits to your indexer have expired based on the expiration date you configured into for indexer in Prowlarr.
+#### Indexers with invalid download clients
+
+- One or more of your indexers is configured with a download client that is either disabled or no longer exists. Check Settings => Download Clients and update or remove the download client assignment on the affected indexer(s).
+
+### Indexer Proxies
+
+#### Indexer proxies are unavailable due to failures
+
+- One or more of your configured indexer proxies is failing its test. Check Settings => Indexer Proxies and verify that the proxy configuration is correct and the proxy is reachable.
+- You can prevent the warning by disabling the affected proxy.
+
### Applications
#### Applications are unavailable due to failures
@@ -231,6 +244,21 @@ If Prowlarr is not running on the same machine as your reverse proxy. Replace 12
- You can prevent the warning by disabling the affected application.
- Run the Test on the application to force Prowlarr to recheck the application, please note that the Health Check warning will not always disappear immediately.
+#### Applications are unavailable due to failures for more than 6 hours
+
+- One or more of your applications has been continuously unavailable for more than 6 hours. Prowlarr will be unable to sync indexers to the affected application(s).
+- Check Events and filter for Warnings to get a quick idea of what issues have occurred historically.
+- Please inspect the logs to determine what kind of error causes the problem.
+- You can prevent the warning by disabling the affected application.
+
+### Notifications
+
+#### Notifications are unavailable due to failures
+
+- One or more of your configured notifications is failing. Prowlarr will temporarily back off sending notifications to the affected notification provider(s).
+- Please inspect the logs to determine what kind of error causes the problem.
+- You can prevent the warning by disabling the affected notification.
+
## Disk Space
This section will show you available disk space
@@ -264,8 +292,11 @@ This page lists all scheduled tasks that Prowlarr runs
- Backup - This will run a backup of your Prowlarr's database on a set schedule more details on this can be found here. More information about backups can be found System => Backups.
- Check Health - Check Health will run on the displayed schedule in the UI checking the overall health of your Prowlarr. To see a list of possible health related issues see the Wiki Entry on Health Checks.
+- Clean Up History - This will clean up history records on the configured schedule. History retention is configured in Settings => General.
- Housekeeping - On the displayed schedule in the UI this will dust out all the cobwebs, sweeps and vacuums the floors, mops, shines, and even makes nice neat little folded notes just for you. But does not take out the trash. That it just was not paid enough for.
- Messaging Cleanup - On the displayed schedule in the UI this cleans up those messages that appear in the bottom left corner of Prowlarr
+- Refresh Indexer Definitions - Downloads and refreshes Cardigann/YML indexer definitions from the Prowlarr Indexers repository.
+- Sync Application Indexers - Syncs the indexer list in Prowlarr to all configured applications (e.g. Sonarr, Radarr, Lidarr).
> All these tasks can be ran manually outside their scheduled times by hitting the icon to the far right of each of the tasks.
{.is-info}
diff --git a/prowlarr/troubleshooting.md b/prowlarr/troubleshooting.md
index e5447a033..ad6a3993d 100644
--- a/prowlarr/troubleshooting.md
+++ b/prowlarr/troubleshooting.md
@@ -2,7 +2,7 @@
title: Prowlarr Troubleshooting
description: Comprehensive troubleshooting guide for common Prowlarr issues and problems
published: true
-date: 2026-02-01T14:29:00.489Z
+date: 2026-06-07T00:00:00.000Z
tags: prowlarr, troubleshooting, help, problems, issues, debugging
editor: markdown
dateCreated: 2021-06-20T20:05:25.223Z
@@ -72,7 +72,7 @@ To provide good and useful logs for sharing:
1. [Turn Logging up to Trace (Settings => General => Log Level or Edit The Config File)](#tracedebug-logs)
2. [Clear Logs (System => Logs => Clear Logs or Delete all the Logs in the Log Folder)](#clearing-logs)
3. Reproduce the Issue (Redo what is breaking things)
-4. [Open the trace log file (Lidarr.trace.txt) via the UI or the log file](#standard-logs-location) on the filesystem and find the relevant context
+4. [Open the trace log file (prowlarr.trace.txt) via the UI or the log file](#standard-logs-location) on the filesystem and find the relevant context
5. Copy a big chunk before the issue, the issue itself, and a big chunk after the issue.
6. Use [Gist](https://gist.github.com/), [0bin (**Be sure to disable colorization**)](https://0bin.net/), [PrivateBin](https://privatebin.net/), [Notifiarr PrivateBin](http://logs.notifiarr.com/), [Hastebin](https://hastebin.com/), [Ubuntu's Pastebin](https://pastebin.ubuntu.com/), or similar sites - excluding those noted to avoid below - to share the copied logs from above
From 1fba6e3b58464469c4479b107d0c373eca9a98ff Mon Sep 17 00:00:00 2001
From: "pre-commit-ci[bot]"
<66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date: Sun, 7 Jun 2026 16:50:13 +0000
Subject: [PATCH 5/8] [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---
docker-guide.md | 2 +-
lidarr/beets-integration.md | 2 +-
lidarr/installation/reverse-proxy.md | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docker-guide.md b/docker-guide.md
index 43a82f31b..5a246531c 100644
--- a/docker-guide.md
+++ b/docker-guide.md
@@ -136,7 +136,7 @@ It is also important to remember that you’ll need to setup or re-configure pat
## Examples
-What matters here is the general structure, not the names. You are free to pick folder names that make sense to you. And there are other reasonable ways of arranging things too. We suggest keeping usenet and torrent downloads seperated, since torrents seed it generally isn't safe to just `rm -rf`, but if you know you've already imported all your usenet downloads you can clean up as needed. Keeping
+What matters here is the general structure, not the names. You are free to pick folder names that make sense to you. And there are other reasonable ways of arranging things too. We suggest keeping usenet and torrent downloads seperated, since torrents seed it generally isn't safe to just `rm -rf`, but if you know you've already imported all your usenet downloads you can clean up as needed. Keeping
This example `data` folder has subfolders for torrents and usenet and each of these have subfolders for tv, movie and music downloads to keep things neat. The `media` folder has nicely named `TV`, `Movies`, `Books`, and `Music` subfolders. This `media` folder is your library and what you’d pass to software Plex, Kodi, Emby, Jellyfin, and Bazarr which only need the library.
diff --git a/lidarr/beets-integration.md b/lidarr/beets-integration.md
index b0c88632c..ff98ff284 100644
--- a/lidarr/beets-integration.md
+++ b/lidarr/beets-integration.md
@@ -1,6 +1,6 @@
---
title: Lidarr and beets Integration
-description:
+description:
published: true
date: 2026-06-07T00:00:00.000Z
tags: lidarr, beets
diff --git a/lidarr/installation/reverse-proxy.md b/lidarr/installation/reverse-proxy.md
index 0d20af3af..f8a0503c8 100644
--- a/lidarr/installation/reverse-proxy.md
+++ b/lidarr/installation/reverse-proxy.md
@@ -1,9 +1,9 @@
---
title: Lidarr Reverse Proxy
-description:
+description:
published: true
date: 2026-06-07T00:00:00.000Z
-tags:
+tags:
editor: markdown
dateCreated: 2023-07-03T20:10:58.279Z
---
From 62214b6164f697e3ae990b2be93377aeca48e4c7 Mon Sep 17 00:00:00 2001
From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
Date: Sun, 7 Jun 2026 11:52:57 -0500
Subject: [PATCH 6/8] style: markdownlint fix (MD040 fenced-code-language +
trailing whitespace)
- Add `text` language to filesystem-tree fenced code blocks in
lidarr/tips-and-tricks.md and lidarr/importing-existing-library.md
(4 MD040 violations resolved).
- Pre-commit autofix swept trailing whitespace + missing EOF newlines
across 10 lidarr files touched by the audit.
---
lidarr/beets-integration.md | 2 +-
lidarr/custom-scripts.md | 2 +-
lidarr/faq.md | 34 ++++++++++++++--------------
lidarr/import-troubleshooting.md | 2 +-
lidarr/importing-existing-library.md | 6 ++---
lidarr/metadata-troubleshooting.md | 4 ++--
lidarr/plugins.md | 7 +-----
lidarr/settings.md | 7 ------
lidarr/tips-and-tricks.md | 6 ++---
lidarr/troubleshooting.md | 1 -
10 files changed, 29 insertions(+), 42 deletions(-)
diff --git a/lidarr/beets-integration.md b/lidarr/beets-integration.md
index ff98ff284..12d8550cb 100644
--- a/lidarr/beets-integration.md
+++ b/lidarr/beets-integration.md
@@ -201,4 +201,4 @@ Two scenarios where the tools can conflict:
- [Custom Scripts](/lidarr/custom-scripts): environment variables available to scripts and how to register them
- [Settings: Metadata](/lidarr/settings#metadata): Write Tags setting and metadata consumer options
- [beets documentation](https://beets.readthedocs.io/en/stable/)
-- [beets installation guide](https://beets.readthedocs.io/en/stable/guides/installation.html)
\ No newline at end of file
+- [beets installation guide](https://beets.readthedocs.io/en/stable/guides/installation.html)
diff --git a/lidarr/custom-scripts.md b/lidarr/custom-scripts.md
index 72403f650..9e925ebce 100644
--- a/lidarr/custom-scripts.md
+++ b/lidarr/custom-scripts.md
@@ -398,4 +398,4 @@ curl -s -X POST "$WEBHOOK_URL" \
## See also
- [Settings: Connect](/lidarr/settings#connections): where you register scripts in the Lidarr UI
-- [Beets Integration](/lidarr/beets-integration): using a custom script to invoke beets for tag enrichment after import
\ No newline at end of file
+- [Beets Integration](/lidarr/beets-integration): using a custom script to invoke beets for tag enrichment after import
diff --git a/lidarr/faq.md b/lidarr/faq.md
index 934b449bb..b0cfe7fc2 100644
--- a/lidarr/faq.md
+++ b/lidarr/faq.md
@@ -17,7 +17,7 @@ If you don't find your question here, the most common landing spots are [Metadat
## Basics
-### How does Lidarr work?
+### How does Lidarr work
Lidarr doesn't search for files that are missing or haven't met quality goals on a schedule. Instead, it queries your indexers and trackers at a steady cadence for *all* newly posted releases, compares that feed with your monitored albums, and downloads matches. At an RSS interval of 15–60 minutes, this amounts to 24–100 queries per day and covers a library of any size. It only catches releases going forward from when you added them, though.
@@ -31,7 +31,7 @@ If Lidarr has been offline for a while, it pages back through each indexer to fi
- Adding an artist or album with *Add and Search*.
- Albums discovered during an artist metadata refresh (for example, a new album MusicBrainz adds after you've already added the artist).
-### How do I update Lidarr?
+### How do I update Lidarr
Lidarr runs on one of three release branches. Pick one under **Settings → General → Updates** (show advanced):
@@ -59,7 +59,7 @@ Docker tag-to-branch mapping:
## Finding music and MusicBrainz
-### Why doesn't artist X show up in search?
+### Why doesn't artist X show up in search
A few common causes:
@@ -84,7 +84,7 @@ Type any of these into the Lidarr search box. Lidarr tries to resolve the MBID a
> **Release vs Release Group is the single most common mistake.** For albums, Lidarr wants the *Release Group* MBID, not a *Release* MBID. A release group is "the 2005 album"; a release is "the 2005 US CD pressing" or "the 2005 UK vinyl." If you paste a release MBID, the lookup will fail or return unexpected results.
{.is-warning}
-### Why does Lidarr only show studio albums, how do I find singles or EPs?
+### Why does Lidarr only show studio albums, how do I find singles or EPs
Lidarr filters what to track per artist through a **Metadata Profile** (Settings → Profiles → Metadata Profiles). The default profile includes only *Studio* albums, which is why singles, EPs, live albums, compilations, and remix collections don't appear on a fresh install.
@@ -98,7 +98,7 @@ Adjust the profile rather than per-artist settings for a library-wide change:
To apply a changed profile to existing artists, go to Library, select the artists, and use Edit → Metadata Profile.
-### How can I find a MusicBrainz ID?
+### How can I find a MusicBrainz ID
1. Search the artist, release group, or release on [MusicBrainz](https://musicbrainz.org/search). For albums, set the search type to **Release Group**.
2. Open the entity page. The MBID appears under the **Details** tab, or at the end of the URL (the UUID after the last slash).
@@ -124,7 +124,7 @@ MusicBrainz doesn't have track lengths for this release (they appear as `???` on
## Importing and renaming
-### I'm having trouble importing my artists, what could it be?
+### I'm having trouble importing my artists, what could it be
Imports fail in one of a few ways:
@@ -144,7 +144,7 @@ To import files you obtained outside of Lidarr (a Bandcamp download, for example
Lidarr then moves the files into the root folder itself, registers them in its database, and tracks them normally from that point on.
-### How can I rename my artist folders?
+### How can I rename my artist folders
{#rename-folders}
@@ -171,13 +171,13 @@ If a rename appears to have happened in Lidarr but the folder name on disk hasn'
> **Renaming outside Lidarr breaks the link between Lidarr's database and the files on disk.** Lidarr tracks files by path. If you rename a folder at the OS level, Lidarr treats the files as missing and may re-download them. Always rename through the Lidarr UI when possible. See [Renaming or moving files outside Lidarr](/lidarr/tips-and-tricks#renaming-moving-outside-lidarr) for a full explanation and recovery steps.
{.is-warning}
-### Why does Lidarr keep trying to rename the same folders?
+### Why does Lidarr keep trying to rename the same folders
Almost always a case-only rename on Windows. Windows filesystems treat `Artist` and `artist` as the same path. When Lidarr renames `ARTIST` to `Artist`, the operation reports success but the folder name on disk doesn't change. Lidarr then sees the folder still needs renaming, and the cycle continues.
The fix is a two-step manual rename (`Artist` → `Artist_tmp` → `Artist`) so the filesystem actually commits the case change. On Linux and macOS this isn't an issue because those filesystems are case-sensitive.
-### What audio formats does Lidarr support?
+### What audio formats does Lidarr support
Lidarr recognises the following file extensions:
@@ -189,7 +189,7 @@ A subset of these formats have named quality definitions that quality profiles a
If a file with a supported extension still isn't importing, the issue is typically match quality rather than format. See [Import Troubleshooting](/lidarr/import-troubleshooting).
-### Can Lidarr prefer a specific pressing or format during import?
+### Can Lidarr prefer a specific pressing or format during import
{#can-lidarr-prefer-a-specific-pressing-or-format-during-import}
@@ -209,7 +209,7 @@ An [open feature request](https://github.com/Lidarr/Lidarr/issues/186) to expose
## Lists and automation
-### Why are list sync times so long and can I change it?
+### Why are list sync times so long and can I change it
List sync is intentionally slow. Lists are an *"add eventually"* tool, not an *"add now"* tool. The original sync cadence overwhelmed the upstream Servarr metadata server when users ran 10-minute list refreshes.
@@ -222,7 +222,7 @@ If you need faster feedback for a specific list:
> **Spotify import lists can trigger rate-limit errors (429s).** When Lidarr processes a Spotify list, it resolves Spotify IDs to MusicBrainz IDs via the metadata server cache. Any ID not in the cache requires an individual lookup, and enough of those in quick succession will hit the rate limit. To resolve this, wait it out, or add the missing Spotify album links to MusicBrainz so they get cached. See [Metadata Troubleshooting → Spotify import list rate limiting](/lidarr/metadata-troubleshooting#spotify-import-list-rate-limiting) for the full mechanism.
{.is-info}
-### Does Lidarr download lyrics, liner notes, or other extras?
+### Does Lidarr download lyrics, liner notes, or other extras
No, by design. Lidarr fetches the release audio files and tags/organises them. It doesn't bundle lyrics, liner notes, or other secondary files.
@@ -233,7 +233,7 @@ For lyrics, use a tag-aware companion tool:
These can run alongside Lidarr against the same library. Run them after Lidarr imports so they don't fight over file ownership.
-### What about Custom Scripts / Custom Formats / post-processing?
+### What about Custom Scripts / Custom Formats / post-processing
Lidarr supports two distinct extension points:
@@ -244,7 +244,7 @@ Custom Formats score releases. Custom Scripts respond to events. They don't over
## Integrations and external tools
-### Does Lidarr support Deemix, slskd, or similar tools?
+### Does Lidarr support Deemix, slskd, or similar tools
Deemix and slskd are third-party tools. Deemix is a Deezer downloader. slskd is a Soulseek daemon. Historically there was no built-in way to integrate them with Lidarr, and users cobbled together import scripts.
@@ -254,7 +254,7 @@ Common community plugins cover exactly this ground: Soulseek, Deezer, Tidal, and
Running plugins requires `develop` or `nightly` (see [How do I update Lidarr?](#how-do-i-update-lidarr)). Database schema migrations mean switching back to `master` afterward requires restoring a pre-switch backup.
-### Which download clients does Lidarr support?
+### Which download clients does Lidarr support
Usenet (NZB): SABnzbd, NZBGet, NZBVortex, Pneumatic, Download Station (Synology), usenet blackhole.
@@ -264,7 +264,7 @@ More clients are available via [Plugins](/lidarr/plugins) on the `develop` or `n
For setup recipes, the [TRaSH Guides — Downloaders](https://trash-guides.info/Downloaders/) section covers the common clients in more depth than the Lidarr wiki does.
-### Does Lidarr integrate with Plex, Emby, or Jellyfin?
+### Does Lidarr integrate with Plex, Emby, or Jellyfin
Not directly. Lidarr manages the library on disk. Media servers read that library and serve it to clients. The common pattern is to share the root folder:
@@ -327,7 +327,7 @@ Common causes:
- **Permissions.** If the Lidarr user can't write to the database file, SQLite can leave it in a corrupt state. This primarily affects new installs, migrated installs, or systems where the running user/group changed recently.
- **mergerFS with `direct_io` enabled.** SQLite uses mmap, which mergerFS `direct_io` doesn't support. See [mergerFS docs](https://github.com/trapexit/mergerfs#plex-doesnt-work-with-mergerfs). Remove `direct_io` from the mergerFS options.
-### I use Lidarr on a Mac and it stopped working. What happened?
+### I use Lidarr on a Mac and it stopped working. What happened
Most likely one of the databases is corrupt — a known macOS issue when the system sleeps or crashes during a database write. See [I am getting an error: Database disk image is malformed](#i-am-getting-an-error-database-disk-image-is-malformed) above for recovery.
diff --git a/lidarr/import-troubleshooting.md b/lidarr/import-troubleshooting.md
index 09dbde1a6..1a3c72f26 100644
--- a/lidarr/import-troubleshooting.md
+++ b/lidarr/import-troubleshooting.md
@@ -196,4 +196,4 @@ For advanced readers who want to verify the rules or trace a specific rejection,
- [Importing an Existing Library](/lidarr/importing-existing-library) — the fresh-install import walkthrough
- [Metadata Troubleshooting](/lidarr/metadata-troubleshooting) — for problems where the release is missing or wrong at MusicBrainz
- [FAQ](/lidarr/faq) — shorter answers that didn't fit this page
-- [MusicBrainz Picard](https://picard.musicbrainz.org/) — tag files with MBIDs before importing for a dramatically higher succes
\ No newline at end of file
+- [MusicBrainz Picard](https://picard.musicbrainz.org/) — tag files with MBIDs before importing for a dramatically higher succes
diff --git a/lidarr/importing-existing-library.md b/lidarr/importing-existing-library.md
index 461aee59b..1f771e26b 100644
--- a/lidarr/importing-existing-library.md
+++ b/lidarr/importing-existing-library.md
@@ -38,13 +38,13 @@ For the automated import to succeed, structure and tag your files before pointin
The recommended structure is:
-```
+```text
///