Automated Search¶
qBitrr can automatically search your Arr instances for missing media and quality upgrades, eliminating manual intervention for building and maintaining your library.
Overview¶
Instead of manually clicking "Search All Missing" in Radarr/Sonarr/Lidarr, qBitrr continuously searches for:
- Missing movies/episodes/albums
- Quality upgrades for existing media
- Custom format score requirements
- Media requests from Overseerr/Ombi
Key benefits:
- Set it and forget it - library builds automatically
- Continuous searching finds content as it becomes available
- Smart ordering prioritizes recent releases
- Respects indexer rate limits with configurable delays
- Optional temporary quality profiles for hard-to-find media
How It Works¶
Search Loop¶
graph TD
A[qBitrr starts] --> B[Update qBitrr database from Arrs]
B --> C{Items found?}
C -->|Yes| D[Sort by priority/date]
D --> E[Search first item]
E --> F[Wait SearchLoopDelay seconds]
F --> G{More items?}
G -->|Yes| E
G -->|No| H{SearchAgainOnSearchCompletion?}
H -->|false| I[Stop searching]
H -->|true| J[Delay, then restart loop]
J --> B
C -->|No| H Process:
- qBitrr queries Arr API for missing media
- Filters based on your configuration (monitored, specials, etc.)
- Sorts items by priority (year, release date, etc.)
- Sends search command to Arr for each item
- Waits
SearchLoopDelayseconds between individual searches (default: 30s) - Repeats until all missing items are searched
- Optionally restarts loop to find newly available releases
SearchRequestsEvery vs SearchLoopDelay
- SearchLoopDelay (global setting): Delay between individual search commands for missing media
- SearchRequestsEvery (per-Arr setting): Delay between complete request check cycles for Overseerr/Ombi
Basic Configuration¶
Enable automated search in the [<Arr>-<Name>.EntrySearch] section:
[Radarr-Movies.EntrySearch]
# Enable searching for missing movies
SearchMissing = true
# Restart loop after completion
SearchAgainOnSearchCompletion = true
Then configure the delay between individual search commands globally:
[Settings]
# Delay between individual search commands (seconds, -1 = use default 30s)
SearchLoopDelay = 30
That's the minimum! qBitrr will now continuously search for missing movies with a 30-second delay between each search command.
Search Settings¶
SearchMissing¶
Type: Boolean Default: false
Master switch for ALL search functionality in qBitrr.
When true:
- qBitrr searches for missing media
- Request searches (Overseerr/Ombi) are enabled
- Upgrade searches are enabled
- Quality/Custom Format searches are enabled
- All other EntrySearch settings become active
- Search loop runs continuously
When false:
- ALL search functionality is completely disabled
- Request integration will NOT work (even if
SearchOverseerrRequests=true) - Upgrade searches will NOT run
- Quality/CF searches will NOT run
- qBitrr only manages existing torrents (no new searches)
Dependency for All Search Features
SearchMissing is the master switch that gates the entire search subsystem.
All search-related features require SearchMissing=true: - Missing media searches - Overseerr/Ombi request integration - Upgrade searches (DoUpgradeSearch) - Quality unmet searches (QualityUnmetSearch) - Custom format searches (CustomFormatUnmetSearch)
- You must manually trigger searches in Arr
Recommendation: true for automated library management.
SearchRequestsEvery¶
Type: Integer (seconds) Default: 300 (5 minutes)
⚠️ This setting ONLY applies to Overseerr/Ombi request integration.
Controls how frequently qBitrr checks for new requests from Overseerr/Ombi and triggers searches.
What it does: - After processing all pending requests, qBitrr waits this many seconds before checking for new requests again - Does NOT affect regular missing media searches (those use SearchLoopDelay for individual delays)
Why delay?
- Prevents excessive API calls to Overseerr/Ombi
- Reduces Arr load from constant request checks
- Balances responsiveness vs resource usage
Recommended values:
-
Low Activity (600s / 10 min)
For infrequent requests
- ✅ Minimal API load
- ✅ Low resource usage
- ⚠️ Slower to process new requests
- Use for: Small user base, occasional requests
-
Balanced (300s / 5 min) ⭐
Default - works well for most setups
- ✅ Checks every 5 minutes
- ✅ Reasonable responsiveness
- ✅ Minimal overhead
- Use for: General purpose, moderate request volume
-
High Activity (120s / 2 min)
Fast response to new requests
- ✅ Quick processing of incoming requests
- ⚠️ More frequent API calls
- ✅ Better user experience
- Use for: Active user base, many requests
-
Very High Activity (60s / 1 min)
Near-instant request processing
- ✅ Fastest possible response time
- ⚠️ Increased API load
- ⚠️ Higher resource usage
- Use for: Very active communities, high request volume
Request Volume Considerations
Adjust based on your request patterns:
- Low volume (<10 requests/day): 300-600s works well
- Medium volume (10-50 requests/day): 120-300s recommended
- High volume (50+ requests/day): 60-120s for responsiveness
Calculate: 3600 / SearchRequestsEvery = requests per hour
Example: 3600 / 300 = 12 requests/hour (safe for most indexers)
SearchAgainOnSearchCompletion¶
Type: Boolean Default: true
Reset all items to "unsearched" status after completing a full search pass, enabling continuous re-searching.
This ERASES Search History
When enabled, qBitrr marks ALL items as Searched=False after each search loop completion, causing them to be re-searched from scratch.
How It Works:
- qBitrr searches all missing/upgrade items
- When search list is exhausted OR 15-minute loop timer elapses:
- Sets
loop_completed = true - On next iteration:
- Marks ALL items as
Searched=Falsein database - Re-searches everything from the beginning
- Process repeats indefinitely
When true:
- ✅ Continuous re-searching for hard-to-find content
- ✅ Automatically finds newly released content
- ✅ Good for: new releases, rare content, ongoing upgrades
- ⚠️ Warning: Generates excessive indexer hits for large libraries
When false:
- ✅ One-time search per item (reduced indexer load)
- ✅ Search history preserved
- ✅ Good for: established libraries, reducing API calls
- ⚠️ Warning: Won't retry failed searches automatically
Example Behavior with SearchAgainOnSearchCompletion = true:
Loop 1: Search movies 1-100 (all marked Searched=True)
→ Loop completes
→ Database reset: mark 1-100 as Searched=False
Loop 2: Search movies 1-100 again (fresh searches)
→ Loop completes
→ Repeat forever
Use Cases:
- Enable (
true): Ongoing library maintenance, hard-to-find content - Disable (
false): One-time backfill, reducing indexer abuse
Search Ordering¶
SearchByYear (Radarr/Sonarr)¶
Type: Boolean Default: true (Radarr/Sonarr), false (Lidarr)
Process searches one year at a time instead of all years simultaneously.
Year-Based Filtering, Not Just Ordering
SearchByYear doesn't just sort by year—it filters searches to process only one year at a time.
How It Works:
- qBitrr extracts all release years from your content (e.g.,
[2020, 2021, 2022, 2023, 2024]) - Starts searching ONLY content from the first year (e.g., 2020)
- Waits for 15-minute loop timer
- Advances to next year, searches ONLY that year's content
- Repeats until all years are processed
- If
SearchAgainOnSearchCompletion=true, restarts from first year
Year Order:
Determined by SearchInReverse: - SearchInReverse=false: Oldest → Newest (2020 → 2024) - SearchInReverse=true: Newest → Oldest (2024 → 2020)
Radarr:
- Uses theatrical release year (
releaseDate) - Each year takes ~15 minutes to process before advancing
Sonarr:
- Uses first aired year (
firstAirDate) - Each year processes all episodes from series that started that year
Sonarr:
- Orders by episode air date year
- Prioritizes recent seasons
Recommendation: true for most users (recent content first).
SearchInReverse¶
Type: Boolean Default: false
Reverse the search order.
Interaction with SearchByYear:
flowchart TD
Start([Configure Search Order])
Start --> CheckYear{SearchByYear?}
CheckYear -->|true| YearTrue[Order by Year DESC<br/>2024 → 2023 → 2022...]
CheckYear -->|false| YearFalse[Order by Year ASC<br/>2020 → 2021 → 2022...]
YearTrue --> CheckReverse1{SearchInReverse?}
YearFalse --> CheckReverse2{SearchInReverse?}
CheckReverse1 -->|false| Result1[✅ Newest → Oldest<br/>2024, 2023, 2022...]
CheckReverse1 -->|true| Result2[✅ Oldest → Newest<br/>2020, 2021, 2022...]
CheckReverse2 -->|false| Result3[✅ Oldest → Newest<br/>2020, 2021, 2022...]
CheckReverse2 -->|true| Result4[✅ Newest → Oldest<br/>2024, 2023, 2022...]
style Result1 fill:#51cf66,stroke:#2f9e44,color:#000
style Result2 fill:#4dabf7,stroke:#1971c2,color:#000
style Result3 fill:#4dabf7,stroke:#1971c2,color:#000
style Result4 fill:#51cf66,stroke:#2f9e44,color:#000
style Start fill:#dee2e6,stroke:#495057,color:#000 Quick Reference:
| SearchByYear | SearchInReverse | Result |
|---|---|---|
true | false | Newest → Oldest (most common) |
true | true | Oldest → Newest |
false | false | Oldest → Newest |
false | true | Newest → Oldest |
Use cases:
false- Prioritize recent releases (normal)true- Fill in older content first (backfilling)
PrioritizeTodaysReleases (Sonarr only)¶
Type: Boolean Default: true (Sonarr only)
Search for today's episode releases before processing the main missing queue.
How it works:
- qBitrr checks for episodes airing today
- Searches those episodes first
- Then continues with regular missing queue
Benefit: Watch tonight's episode as soon as it's available!
Recommendation: true for actively airing shows.
Sonarr-Specific Settings¶
AlsoSearchSpecials¶
Type: Boolean Default: false
Include special episodes (Season 00) in searches.
What are specials?
- Season 0 / "Specials"
- OVAs, ONAs (anime)
- Bonus content
- Behind-the-scenes
- Interviews
Recommendation:
false- Skip specials (most users)true- Include specials (completionists)
Unmonitored¶
Type: Boolean Default: false
Search for unmonitored episodes/series.
When true:
- Searches ALL series, even unmonitored
- Can find content you weren't actively seeking
When false:
- Only searches monitored content
- More controlled library growth
Recommendation: false to avoid unwanted downloads.
SearchLimit¶
Type: Integer Default: 5 Applies to: Radarr, Sonarr
Maximum number of active search commands allowed in the Arr instance's task queue.
How It Works:
qBitrr queries the Arr's /api/v3/command endpoint to count active search tasks running in Radarr/Sonarr. If the count reaches SearchLimit, qBitrr pauses sending new searches until the queue clears.
What this controls: - ✅ Depth of Radarr/Sonarr's internal task queue - ✅ How many searches qBitrr allows to pile up in Arr
What this does NOT control: - ❌ Number of torrents qBitrr searches simultaneously - ❌ Number of parallel API calls qBitrr makes - ❌ Queue size in qBitrr's database
Platform-Specific Limits:
- Sonarr: Hardcoded limit of 3 concurrent tasks. Setting
SearchLimit > 3allows qBitrr to queue additional searches that Sonarr will process sequentially. - Radarr: Default limit is 3, configurable up to 10 via
THREAD_LIMITenvironment variable (unsupported by Radarr devs). - Lidarr: Does not support SearchLimit (Lidarr manages its own task queue).
Recommendation: 5 (allows up to 5 pending searches in Arr's queue)
SearchBySeries (Sonarr only)¶
Type: String Default: "smart" Options: true, false, "smart"
Control series vs episode search mode.
Modes:
true- Always series search (entire series/season at once)false- Always episode search (individual episodes)"smart"- Automatic (series for seasons, episode for singles)
Comparison:
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#4dabf7','primaryTextColor':'#000','primaryBorderColor':'#1971c2','lineColor':'#868e96','secondaryColor':'#51cf66','tertiaryColor':'#ffa94d'}}}%%
graph LR
subgraph Series["🎬 Series Search"]
direction TB
S1["⚡ Speed: FAST<br/>(1 search per series)"]
S2["🎯 Precision: LOWER<br/>(bulk matching)"]
S3["⚙️ Quality Control: LIMITED<br/>(ignores QualityUnmetSearch)"]
S4["📦 Use Case:<br/>Batch downloading<br/>entire series/seasons"]
end
subgraph Episode["📺 Episode Search"]
direction TB
E1["🐌 Speed: SLOWER<br/>(1 search per episode)"]
E2["🎯 Precision: HIGHER<br/>(exact matching)"]
E3["⚙️ Quality Control: FULL<br/>(respects all settings)"]
E4["🔍 Use Case:<br/>Selective upgrading<br/>missing episodes"]
end
Series -.->|vs| Episode
style Series fill:#e7f5ff,stroke:#1971c2,stroke-width:2px
style Episode fill:#d3f9d8,stroke:#2f9e44,stroke-width:2px Decision Guide:
-
Use Series Search When:
- ✅ Entire series/season is missing
- ✅ Fast bulk downloads needed
- ✅ Quality doesn't matter (grab anything)
- ⚠️ You don't need upgrade searches
-
Use Episode Search When:
- ✅ Only specific episodes missing
- ✅ Quality precision matters
- ✅ Upgrading existing files
- ✅ Respecting QualityUnmetSearch settings
-
Use Smart Mode (Default):
- ⭐ Automatic selection based on context
- ✅ Series search for bulk missing
- ✅ Episode search for selective needs
- ✅ Best balance of speed + precision
Smart mode logic:
If entire series/season is missing:
→ Series search (fast)
Else if single episodes missing:
→ Episode search (precise)
Recommendation: "smart" for best balance.
Quality Upgrade Searches¶
DoUpgradeSearch¶
Type: Boolean Default: false
Search for better quality versions of media you already have.
Example scenarios:
- You have 720p, want 1080p
- You have x264, want x265
- You have MP3, want FLAC (Lidarr)
When true:
- qBitrr queries for all media (not just missing)
- Sends upgrade search commands to Arr
- Arr downloads better quality if found
Recommendation:
false- Satisfied with current qualitytrue- Building a high-quality library
Bandwidth Usage
Upgrade searches can download a LOT of data. A 1080p→4K upgrade can be 50+ GB per movie.
QualityUnmetSearch¶
Type: Boolean Default: false
Search for media that hasn't met quality profile requirements.
How it works:
- You set quality profile to "1080p Minimum"
- Arr downloads 720p (better than nothing)
- qBitrr detects quality not met
- Searches for 1080p version
- Arr upgrades when found
Difference from DoUpgradeSearch:
DoUpgradeSearch- Always looks for betterQualityUnmetSearch- Only searches if quality target not met
Recommendation: true to enforce quality standards.
Search Type Interactions¶
CRITICAL: DoUpgradeSearch Overrides Quality/CF Searches
DoUpgradeSearch takes precedence over QualityUnmetSearch and CustomFormatUnmetSearch.
When DoUpgradeSearch=true: - qBitrr searches ALL items with files for potential upgrades - QualityUnmetSearch and CustomFormatUnmetSearch settings are IGNORED
When DoUpgradeSearch=false: - qBitrr respects QualityUnmetSearch and CustomFormatUnmetSearch - Only items failing quality/CF requirements are searched
Recommendation: Enable EITHER DoUpgradeSearch OR the quality/CF searches, not both.
Configuration Matrix:
| DoUpgradeSearch | QualityUnmetSearch | CustomFormatUnmetSearch | Behavior |
|---|---|---|---|
✅ true | any | any | Searches ALL items with files (broad upgrades) |
❌ false | ✅ true | ❌ false | Searches items failing quality cutoff only |
❌ false | ❌ false | ✅ true | Searches items failing CF score only |
❌ false | ✅ true | ✅ true | Searches items failing EITHER quality or CF |
❌ false | ❌ false | ❌ false | No upgrade searches (missing media only) |
CustomFormatUnmetSearch¶
Type: Boolean Default: false
Search for media that hasn't met custom format score requirements.
What are custom formats?
Radarr/Sonarr v3+ feature for advanced filtering:
- Proper/Repack releases
- Scene vs P2P
- HDR vs SDR
- Release group preferences
- Audio codec preferences
Example:
- Custom format requires score ≥ 100 for "Proper"
- Downloaded release scores 50
- qBitrr triggers search for higher-scoring release
Recommendation: true if you use custom formats extensively.
ForceMinimumCustomFormat¶
Type: Boolean Default: false
Automatically remove torrents that don't meet minimum custom format score.
When true:
- qBitrr checks custom format scores
- Removes torrents below minimum
- Blacklists release
- Triggers new search
Very aggressive! Only enable if:
- You have strict quality requirements
- Your custom formats are well-configured
- You're confident in your scoring
Recommendation: false unless you need strict enforcement.
Temporary Quality Profiles¶
UseTempForMissing¶
Type: Boolean Default: false
Temporarily lower quality requirements for missing items.
Use case: "Get something now, upgrade later"
Example workflow:
- Album missing, profile = "Lossless (FLAC only)"
- qBitrr switches to "Any (MP3 acceptable)"
- Lidarr finds and downloads MP3
- qBitrr switches back to "Lossless"
- Future upgrade searches look for FLAC
Requirement: Must configure QualityProfileMappings.
QualityProfileMappings¶
Type: Dictionary (Main → Temp profile names) Default: {} (empty)
Map main quality profiles to temporary profiles.
Format:
Profile names must match exactly as they appear in your Arr instance.
Examples:
# Lidarr - Music
QualityProfileMappings = {
"Lossless (FLAC)" = "Lossy (MP3-320)"
}
# Radarr - Movies
QualityProfileMappings = {
"Ultra HD" = "HD-1080p",
"HD-1080p" = "SD"
}
# Sonarr - TV
QualityProfileMappings = {
"WEB-1080p" = "WEB-720p"
}
KeepTempProfile¶
Type: Boolean Default: false
Don't switch back to main profile after download.
When false (default):
- Download completes → Switch back to main profile
- Allows future upgrades
When true:
- Keep temporary profile permanently
- No automatic upgrades
Recommendation: false for upgrade workflow.
ForceResetTempProfiles¶
Type: Boolean Default: false
Reset all items using temp profiles back to main profiles on qBitrr startup.
Use case: Clean up after testing or configuration changes.
TempProfileResetTimeoutMinutes¶
Type: Integer (minutes) Default: 0 (disabled)
Automatically reset temp profiles after X minutes.
Example:
After 7 days with temp profile, qBitrr resets to main profile.
ProfileSwitchRetryAttempts¶
Type: Integer Default: 3
Number of retry attempts for profile switch API calls.
Why retries?
- Network issues
- Arr temporary unavailability
- API rate limiting
Recommendation: 3 is safe.
Request Integration¶
Search for media requested via Overseerr or Ombi.
Overseerr Configuration¶
[Radarr-Movies.EntrySearch.Overseerr]
# Enable Overseerr integration
SearchOverseerrRequests = false
# Overseerr URL
OverseerrURI = "http://localhost:5055"
# Overseerr API key
OverseerrAPIKey = "your-api-key"
# Only approved requests
ApprovedOnly = true
# 4K instance flag
Is4K = false
For details, see the Overseerr configuration section in Radarr or Sonarr configuration guides.
Ombi Configuration¶
[Sonarr-TV.EntrySearch.Ombi]
# Enable Ombi integration
SearchOmbiRequests = false
# Ombi URL
OmbiURI = "http://localhost:5000"
# Ombi API key
OmbiAPIKey = "your-api-key"
# Only approved requests
ApprovedOnly = true
Note: If both Overseerr and Ombi are enabled, Overseerr takes priority.
Complete Configuration Examples¶
Example 1: New Library (Fast Fill)¶
Fill a new library quickly:
[Radarr-Movies.EntrySearch]
SearchMissing = true
SearchByYear = true # Recent movies first
SearchInReverse = false
SearchRequestsEvery = 180 # 3 minutes (aggressive)
DoUpgradeSearch = false # Just fill library
QualityUnmetSearch = false
SearchAgainOnSearchCompletion = true # Continuous
Example 2: Quality-Focused Library¶
Build a high-quality library:
[Radarr-4K.EntrySearch]
SearchMissing = true
SearchRequestsEvery = 600 # 10 minutes (conservative)
DoUpgradeSearch = true # Always seek better
QualityUnmetSearch = true # Enforce quality
CustomFormatUnmetSearch = true # Enforce formats
ForceMinimumCustomFormat = true # Strict
SearchAgainOnSearchCompletion = true
Example 3: Backfill Old Content¶
Fill in classic movies/TV:
[Radarr-Classics.EntrySearch]
SearchMissing = true
SearchByYear = true
SearchInReverse = true # Start with oldest
SearchRequestsEvery = 300
DoUpgradeSearch = false
SearchAgainOnSearchCompletion = false # One pass
Example 4: Sonarr with Today's Releases¶
Stay current with airing shows:
[Sonarr-TV.EntrySearch]
SearchMissing = true
AlsoSearchSpecials = false
Unmonitored = false
SearchLimit = 5
SearchByYear = true
SearchInReverse = false
SearchRequestsEvery = 180 # 3 minutes
PrioritizeTodaysReleases = true # Today's episodes first
SearchBySeries = "smart"
DoUpgradeSearch = false
SearchAgainOnSearchCompletion = true
Example 5: Lidarr with Temp Profiles¶
Music library - get MP3 now, upgrade to FLAC later:
[Lidarr-Music.EntrySearch]
SearchMissing = true
SearchInReverse = false
SearchRequestsEvery = 300
DoUpgradeSearch = true
QualityUnmetSearch = true
# Temp profile strategy
UseTempForMissing = true
KeepTempProfile = false
QualityProfileMappings = {"Lossless (FLAC)" = "Any (MP3)"}
TempProfileResetTimeoutMinutes = 10080 # 7 days
SearchAgainOnSearchCompletion = true
Monitoring Searches¶
WebUI¶
View search activity in the WebUI:
- Open
http://localhost:6969/ui - Navigate to Arr tab (Radarr/Sonarr/Lidarr)
- Watch for "Searching..." status
Logs¶
Monitor search activity in logs:
# Main log
tail -f ~/logs/Main.log | grep -i search
# Specific Arr instance
tail -f ~/logs/Radarr-Movies.log | grep -i search
Example log output:
2025-11-27 10:00:00 - INFO - Searching for missing movies: 45 items
2025-11-27 10:00:05 - INFO - Search command sent for: The Matrix (1999)
2025-11-27 10:05:10 - INFO - Search command sent for: Inception (2010)
2025-11-27 10:10:15 - INFO - Search command sent for: Interstellar (2014)
...
2025-11-27 14:30:00 - INFO - All missing items searched, restarting loop
Search Performance¶
Estimating Search Time¶
Calculate how long to search through your missing queue:
Performance Visualization:
gantt
title Search Queue Completion Time Examples
dateFormat X
axisFormat %H hours
section 100 Movies
Balanced (300s) - 8.3h :done, a1, 0, 8
Aggressive (180s) - 5h :crit, a2, 0, 5
Very Aggressive (60s) - 1.7h :active, a3, 0, 2
section 500 Movies
Balanced (300s) - 25h :done, b1, 0, 25
Aggressive (180s) - 15h :crit, b2, 0, 15
Very Aggressive (60s) - 8.3h :active, b3, 0, 8
section 1000 Episodes
Balanced (300s) - 83h (3.5 days) :done, c1, 0, 83
Aggressive (180s) - 50h (2.1 days) :crit, c2, 0, 50
Very Aggressive (60s) - 16.7h :active, c3, 0, 17 Quick Reference Table:
| Missing Items | SearchRequestsEvery | Total Time | Requests/Hour |
|---|---|---|---|
| 100 movies | 300s (5 min) | 8.3 hours | 12/hr |
| 100 movies | 180s (3 min) | 5 hours | 20/hr |
| 100 movies | 60s (1 min) | 1.7 hours ⚠️ | 60/hr |
| 500 movies | 300s (5 min) | 25 hours | 12/hr |
| 500 movies | 180s (3 min) | 15 hours | 20/hr |
| 1000 episodes | 300s (5 min) | 83 hours (3.5 days) | 12/hr |
| 1000 episodes | 180s (3 min) | 50 hours (2.1 days) | 20/hr |
Performance Calculation
Formula: Total Time = Missing Items × SearchRequestsEvery / 60 (minutes)
Rate Limit Check: Requests/Hour = 3600 / SearchRequestsEvery
- ✅ Safe: < 20 requests/hour
- ⚠️ Moderate risk: 20-40 requests/hour
- ❌ High risk: > 40 requests/hour
With continuous searching (SearchAgainOnSearchCompletion = true):
- First pass: Full time above
- Subsequent passes: Only search new missing items
- Ongoing: Finds content as it becomes available
Optimizing Search Speed¶
Faster (higher risk of rate limits):
- 60 requests/hour
- Risky for many indexers
- Good for private trackers with high limits
Balanced:
- 12 requests/hour
- Safe for most setups
- Default recommendation
Conservative:
- 6 requests/hour
- Very safe
- Slow library fill
Troubleshooting¶
Searches Not Triggering¶
Symptom: qBitrr doesn't search for missing items
Solutions:
-
Enable SearchMissing:
-
Check Arr has missing items:
- Open Radarr/Sonarr/Lidarr
- Go to Wanted/Missing
-
Ensure items are monitored
-
Review logs:
-
Verify Arr API connectivity:
- Check URI and APIKey in config
- Test with:
curl -H "X-Api-Key: your-key" http://localhost:7878/api/v3/wanted/missing
Rate Limit Errors¶
Symptom: Indexer errors in Arr logs
Solutions:
-
Increase delay:
-
Check indexer limits:
- Review indexer documentation
-
Some have daily/hourly caps
-
Stagger across multiple instances:
- Don't search all Arr instances simultaneously
- Offset search times
Temp Profiles Not Working¶
Symptom: Profiles don't switch
Solutions:
-
Verify exact profile names:
-
Check Arr logs for errors:
- Profile not found
-
Permission issues
-
Enable debug logging:
-
Check retry attempts:
Searches Too Slow¶
Symptom: Takes forever to search queue
Solutions:
-
Decrease delay (carefully):
-
Use one-time search:
-
Manual batch search in Arr:
- For initial library fill
- Then enable qBitrr for maintenance
Best Practices¶
1. Start Conservative¶
Monitor for a few days, then decrease if no issues.
2. Enable Continuous Search¶
Finds content as it becomes available on indexers.
3. Use Smart Search (Sonarr)¶
Best balance of speed and precision.
4. Prioritize Recent Content¶
Unless backfilling classics.
5. Monitor Indexer Health¶
- Check Arr → System → Tasks → Indexer logs
- Watch for rate limit warnings
- Adjust
SearchRequestsEveryaccordingly
6. Use Temp Profiles Selectively¶
Only for hard-to-find content:
Not needed if indexers have good coverage.
Integration with Other Features¶
Instant Imports¶
After automated search finds content:
- Search triggers download
- qBittorrent downloads file
- Instant import triggers (see Instant Imports)
- Media available within seconds of download
Health Monitoring¶
If automated search downloads fail:
- Health monitoring detects failure
- Triggers re-search automatically
- Downloads alternative release
See Health Monitoring.
Request Systems¶
Overseerr/Ombi workflow:
- User requests media
- Automated search finds it
- Instant import processes it
- User notified within minutes
Temporary Profile Troubleshooting¶
Why did my item stay on temp profile after searching?¶
Answer: If a search was performed but no suitable release was found, the item remains on the temp profile to continue searching with lowered requirements.
What happens:
- Item switches to temp profile (e.g., SD instead of HD-1080p)
- qBitrr performs search
- No releases match temp profile criteria (e.g., no SD releases available either)
- Profile stays as temp for future search attempts
- Once a release is found and downloaded, profile reverts to main
Solution: This is expected behavior. The temp profile will remain active until:
- Content is found and downloaded
TempProfileResetTimeoutMinutestimeout expires (if configured)ForceResetTempProfiles=truetriggers on qBitrr restart- You manually reset the profile in Arr
Why is my Sonarr series on a temp profile when some episodes have files?¶
Answer: Missing episodes take priority. If ANY episodes are missing, the entire series uses the temp profile to maximize chances of finding the missing content.
How it works:
Sonarr only supports quality profiles at the series level (not episode level). All episodes inherit the series profile. This is a Sonarr limitation, not a qBitrr design choice.
Example:
Series: Breaking Bad
Episodes:
✅ S01E01 - Has file
✅ S01E02 - Has file
❌ S01E03 - Missing
✅ S01E04 - Has file
❌ S01E05 - Missing
qBitrr logic:
- ANY episodes missing → Series uses temp profile
- Entire series switched to "HDTV-720p" (from "WEB-DL 1080p")
- Search for S01E03 and S01E05 with lowered quality
- Once all episodes downloaded → Series reverts to main profile
Why this is correct:
- Finding missing content is priority #1 - Get the episodes first
- Sonarr prevents downgrades - Won't replace existing HD files with SD
- Custom Format protection - Won't import lower CF score than existing
- Series-level only option - Individual episode profiles not supported by Sonarr
Solution: This is expected and correct behavior. Existing high-quality episodes are protected; only missing episodes will download at lower quality.
Temp profiles not switching at all?¶
Check these:
-
Verify exact profile names:
Profile names in config must match API response exactly (case-sensitive). -
Check UseTempForMissing enabled:
-
Verify mappings configured:
-
Review logs:
Profiles stuck on temp permanently?¶
Solutions:
-
Enable auto-reset timeout:
-
Force reset on startup:
Restart qBitrr. -
Manual reset in Arr:
- Go to Movies/Series/Artists
- Bulk select items
- Edit → Quality Profile → Select main profile
API errors during profile switches?¶
Increase retry attempts:
Check Arr connectivity:
# Test Arr API
curl -H "X-Api-Key: your-key" http://localhost:7878/api/v3/qualityprofile
# Check qBitrr logs
tail -f ~/logs/Radarr-Movies.log | grep -i "failed\|error"
FAQ¶
Q: Should I use temp profiles for all content types?¶
A: No. Recommended by use case:
- Lidarr (Music): ✅ Highly recommended - Many albums lack lossless
- Radarr (Movies): ⚠️ Optional - Use for 4K → 1080p fallback
- Sonarr (TV): ⚠️ Optional - Use for WEB-DL → HDTV fallback on new episodes
General rule: Only enable if you frequently encounter missing content due to quality requirements being too strict.
Q: What's the difference between temp profiles and just lowering my main profile?¶
A: Temp profiles enable automatic upgrades:
Without temp profiles (lowered main profile):
- Set Lidarr profile to "Any (MP3-320)"
- Downloads MP3 for all albums
- Never searches for FLAC upgrades
- Stuck with MP3 forever
With temp profiles:
- Main profile: "Lossless (FLAC)"
- Temp profile: "Any (MP3-320)"
- Missing album → Switch to temp → Download MP3
- Switch back to main → Continue searching for FLAC
- FLAC becomes available → Automatic upgrade
Benefit: Get content now, upgrade automatically later.
Q: Can I have different timeout values for different Arr instances?¶
A: Yes! Configure per-instance:
[Radarr-4K.EntrySearch]
TempProfileResetTimeoutMinutes = 43200 # 30 days for 4K
[Sonarr-TV.EntrySearch]
TempProfileResetTimeoutMinutes = 1440 # 1 day for TV
[Lidarr-Music.EntrySearch]
TempProfileResetTimeoutMinutes = 10080 # 7 days for music
Q: Does KeepTempProfile=true prevent all upgrades?¶
A: Yes. When KeepTempProfile=true:
- Download completes
- Profile stays as temp
- No automatic switch back to main
- Upgrade searches use temp profile criteria (lower quality)
- Manual intervention required to restore main profile
Recommendation: Always use KeepTempProfile=false unless you intentionally want to accept lower quality permanently.
Q: What happens if I delete a profile that's referenced in my mappings?¶
A: qBitrr handles this gracefully:
- Profile deleted in Arr
- qBitrr logs warning: "Profile 'ProfileName' not found"
- Skips that mapping
- Continues with other valid mappings
No crashes or errors. Fix by updating your config to use valid profile names.
Q: Can I use the same temp profile for multiple main profiles?¶
A: Yes! Example:
This creates a quality hierarchy: - 4K → 1080p fallback - 1080p → 720p fallback - 720p → SD fallback
See Also¶
- Instant Imports - Fast media import
- Health Monitoring - Torrent health checks
- Custom Formats - Advanced filtering
- Quality Profiles - Detailed temp profile configuration
- Radarr Configuration - Radarr setup
- Sonarr Configuration - Sonarr setup
- Lidarr Configuration - Lidarr setup