Common Issues & Solutions¶
This page covers the most frequently encountered issues with Torrentarr and their solutions.
Connection Issues¶
qBittorrent Connection Failures¶
Symptom: "Connection refused" or "Connection timeout"¶
Possible Causes:
- qBittorrent is not running
- Wrong
HostorPortin config - Firewall blocking connection
- qBittorrent Web UI is disabled
Solutions:
-
Verify qBittorrent is running:
-
Check Web UI is enabled:
- Open qBittorrent
- Go to Tools → Options → Web UI
- Ensure "Web User Interface (Remote control)" is checked
-
Note the IP address and port
-
Test connection manually:
Expected: HTTP 200 response with version number -
Check firewall rules:
-
Docker: Use correct host:
- Same network: Use container name (e.g.,
qbittorrent) - Different network: Use host IP or
host.docker.internal(macOS/Windows)
Symptom: "Invalid username or password"¶
Possible Causes:
- Wrong credentials in config
- Authentication bypass enabled but credentials still provided
- Recent password change not reflected in config
Solutions:
- Verify credentials:
- Open qBittorrent Web UI manually
- Try logging in with the same credentials from
config.toml -
If login fails, update credentials in qBittorrent settings
-
Check authentication bypass:
- In qBittorrent: Tools → Options → Web UI → Authentication
-
If "Bypass authentication for clients on localhost" is enabled:
toml [qBit] UserName = "" Password = "" -
Test login manually:
Expected:curl -i --header "Referer: http://localhost:8080" \ --data "username=admin&password=yourpass" \ http://localhost:8080/api/v2/auth/loginOk.response
Symptom: Connection errors or API failures¶
Possible Causes:
- Incorrect host or port configuration
- Authentication credentials are wrong
- qBittorrent WebUI is not enabled
- Network connectivity issues
Solutions:
- Verify qBittorrent is running and accessible:
- Open qBittorrent WebUI in a browser:
http://localhost:8080 -
Check Tools → Options → Web UI is enabled
-
Check configuration:
toml [qBit] Host = "localhost" Port = 8080 UserName = "admin" Password = "password" -
Test connectivity manually:
-
Restart Torrentarr after config change
Arr Instance Connection Failures¶
Symptom: "Connection refused" when connecting to Radarr/Sonarr/Lidarr¶
Solutions:
-
Test Arr API manually:
-
Verify URI format: ```toml # ✅ Correct URI = "http://localhost:7878"
# ❌ Incorrect (missing http://) ```
- Check API key:
- Copy API key from Arr instance: Settings → General → Security
- Paste into
config.toml(no extra spaces!) -
API keys are case-sensitive
-
Docker networking:
- If Arr and Torrentarr are in the same Docker network, use service name:
toml URI = "http://radarr:7878" # Not "localhost"
Torrent Processing Issues¶
Torrents Not Being Monitored¶
Symptom: Torrentarr starts but doesn't process any torrents¶
Common Cause: Category Mismatch
The #1 reason Torrentarr doesn't process torrents is mismatched categories.
How to Fix:
- Check Arr download client category:
- Radarr/Sonarr/Lidarr → Settings → Download Clients
- Click your qBittorrent client
-
Note the Category field (e.g.,
radarr-movies) -
Check Torrentarr config:
toml [Radarr-Movies] Category = "radarr-movies" # Must EXACTLY match! -
Check existing torrents in qBittorrent:
- Open qBittorrent
- Look at the Category column for your Arr torrents
-
Categories must match between qBittorrent, Arr, and Torrentarr
-
Enable debug logging to verify:
toml [Settings] ConsoleLevel = "DEBUG"Look for:Processing category: radarr-moviesin logs
Other Causes:
- Missing tags: Arr instances need to tag torrents. Check
Settings.Taglessif you don't use tags. - Instance disabled: Verify
Managed = truein the Arr section - qBit disabled: Check
[qBit] Disabled = false
Torrents Instantly Marked as Failed¶
Symptom: Torrents are added but immediately fail¶
Possible Causes:
- Too young: Torrentarr ignores torrents younger than
IgnoreTorrentsYoungerThan(default: 180 seconds)
Solution: Wait 3 minutes, or lower the value: toml [Settings] IgnoreTorrentsYoungerThan = 60 # 1 minute
- File extension not allowed:
Solution: Add missing extensions to allowlist: toml [Radarr-Movies.Torrent] FileExtensionAllowlist = [".mp4", ".mkv", ".avi", ".!qB", ".parts"]
- FFprobe validation failure:
Solution: Check FFprobe logs or disable validation temporarily
- ETA exceeds maximum:
Solution: Increase or disable MaxETA: toml [Radarr-Movies.Torrent] MaximumETA = -1 # Disable # Or increase: MaximumETA = 86400 # 24 hours
Stalled Torrents Not Being Handled¶
Symptom: Torrents stall but Torrentarr doesn't remove them¶
Solutions:
- Check stalled delay setting:
toml [Radarr-Movies.Torrent] StalledDelay = 15 # Wait 15 minutes before removal -1= Disabled (never remove stalled)0= Immediate removal-
>0= Wait N minutes before removal -
Verify torrent is actually stalled:
- In qBittorrent, check torrent status
-
"Stalled" means no peers and no progress
-
Enable re-search for stalled:
toml [Radarr-Movies.Torrent] ReSearchStalled = true # Search before removing -
Check logs for stall detection:
Search Issues¶
Automated Searches Not Running¶
Symptom: Torrentarr runs but doesn't search for missing media¶
Root Cause: SearchMissing is the master switch for all search features.
Solutions:
- Enable SearchMissing (required):
toml [Radarr-Movies.Search] SearchMissing = true # REQUIRED - master switch for all search features
Important: DoUpgradeSearch, QualityUnmetSearch, CustomFormatUnmetSearch, and request processing (Overseerr/Ombi) will ONLY work if SearchMissing is enabled.
- Check search loop startup in logs:
You should see:
Search loop starting for Radarr-Movies (SearchMissing=True, ...)
Search loop initialized successfully, entering main loop
- If search loop crashes or exits unexpectedly:
If you see "Search loop crashed", check the full traceback above that line.
- HTTP 415 / unmapped Arr errors during Sonarr episode fetch:
Older qBitrr builds could log Search loop crashed unexpectedly ... Exception: (415, '') while loading years (episode.get for SearchByYear). Torrentarr loads years from the local DB, but the same HTTP 415 on GET /api/v3/episode during Sonarr sync used to skip only that series (and still can). Instance-wide connectivity failures abort remaining series. If every series episode fetch fails, sync is not treated as complete and the search loop backs off.
An empty 415 body often comes from a reverse proxy or WAF on GET /api/v3/episode. Test that URL with X-Api-Key from the same network as Torrentarr. Workaround: set SearchByYear = false for that Sonarr section.
- Common mistake - SearchLoopDelay:
Note: SearchLoopDelay controls the delay between individual searches in a batch, not whether searches run. toml [Settings] SearchLoopDelay = -1 # -1 = uses default 30s between each search
- Verify Arr has missing media:
- Open Radarr/Sonarr → Wanted → Missing
-
If empty, there's nothing to search for
-
Check indexer connectivity:
- In Arr instance: System → Status
- Ensure indexers are enabled and reachable
Overseerr/Ombi Requests Not Processing¶
Symptom: User requests aren't being searched¶
Solutions:
-
Enable request processing:
toml [Radarr-Movies.Search.Overseerr] SearchOverseerrRequests = true -
Verify connection details:
toml OverseerrURI = "http://localhost:5055" # Correct URI? OverseerrAPIKey = "your-api-key" # Valid API key? -
Test API manually:
-
Check approval status:
toml ApprovedOnly = true # Only processes approved requests - If
true, make sure requests are approved in Overseerr -
Set to
falseto process all requests -
Verify 4K instance flag:
toml Is4K = true # For 4K Radarr instancesMust match your Overseerr configuration
Searches Trigger But Find Nothing¶
Symptom: Torrentarr searches but Arr reports "No results"¶
This is usually an Arr/indexer issue, not Torrentarr.
Solutions:
- Test search in Arr directly:
- Go to Wanted → Missing
- Click Search for a specific item
-
Check if Arr finds results
-
Check indexer configuration:
- Settings → Indexers
- Test each indexer
-
Review indexer logs for errors
-
Check indexer rate limits:
- Some indexers have API rate limits
- Torrentarr's searches count against your limit
-
Review indexer stats/logs
-
Verify quality profile settings:
- Overly strict quality profiles may filter out all results
-
Temporarily lower standards to test
-
Check custom format scores:
- If using custom formats, high minimum scores may block releases
- Temporarily disable CF scoring to test
Import Issues¶
Files Not Importing After Download¶
Symptom: Torrent completes but Arr doesn't import files¶
Solutions:
- Check path mapping:
- qBittorrent's save path must be accessible to Arr
- Common Docker issue: mismatched volume paths
Example (Docker):
qbittorrent:
volumes:
- /mnt/data/torrents:/downloads
radarr:
volumes:
- /mnt/data/torrents:/downloads # Must match!
-
Verify the client DownloadPath and local path mappings: ```toml [qBit] DownloadPath = "/downloads"
3. **Check file permissions:** ```bash # All files must be readable by Arr instance ls -l /path/to/completed/downloads ``` 4. **Enable instant import:** - Torrentarr triggers instant imports automatically - Check logs for import triggers: ```bash tail -f ~/logs/Main.log | grep -i import ``` 5. **Manual import test in Arr:** - **Activity** → **Queue** - Click **Manual Import** for the download - Check error messages --- ### Import Succeeds But Quality Is Wrong #### Symptom: Files import but don't match expected quality **This is usually an Arr quality profile issue.** **Solutions:** 1. **Review quality profile:** - **Settings** → **Profiles** - Check which qualities are allowed - Verify upgrade conditions 2. **Check custom formats:** - **Settings** → **Custom Formats** - Review scoring and minimum scores - Ensure downloaded file meets requirements 3. **Use quality upgrade search:** ```toml [Radarr-Movies.Search] DoUpgradeSearch = true QualityUnmetSearch = true -
Enable temp profile switching:
toml UseTempForMissing = true QualityProfileMappings = {"Ultra-HD" = "HD-1080p"}This grabs something initially, then upgrades later
Performance Issues¶
High CPU Usage¶
Possible Causes:
-
Too frequent loop processing:
toml [TorrentClient.local] TorrentScanIntervalSeconds = 5 # Fastest allowed intervalSolution: Increase the client scan interval to 15 or 30 seconds:toml TorrentScanIntervalSeconds = 30 -
Too many concurrent searches:
toml [Radarr-Movies.Search] SearchLimit = 10 # Too highSolution: Lower to 3-5:toml SearchLimit = 3 -
Database locked:
- Multiple Torrentarr instances accessing same database
- Solution: Use separate config directories for multiple instances
High Memory Usage¶
Possible Causes:
- Large torrent libraries:
- Processing thousands of torrents uses significant RAM
-
Solution: Split libraries across multiple Arr instances
-
Extensive logging:
toml [Settings] ConsoleLevel = "TRACE" # Very verboseSolution: Use INFO or WARNING:toml ConsoleLevel = "INFO" -
WebUI live updates:
toml [WebUI] LiveArr = true # Increases memory usageSolution: Disable if not needed:toml LiveArr = false
Disk Space Issues¶
Torrentarr Doesn't Pause Torrents When Disk Is Full¶
Solutions:
-
Enable the appropriate client free-space monitor: ```toml [[qBit.FreeSpace]] Path = '/downloads' Enabled = true Limit = '10G'
Supported units: K (KB), M (MB), G (GB), T (TB) -
Set the local monitor Path:
toml [[qBit.FreeSpace]] Path = "/downloads" Enabled = false Limit = '10G'toml ImportMode = "Move" ```**Solution:** Use Move to free space:Must be the mount point or directory to monitor 4. **Verify path is correct:** ```bash df -h /downloads # Check available space ``` --- ### Torrents Removed But Disk Space Not Freed **Possible Causes:** 1. **Files copied, not moved:** ```toml [Radarr-Movies] ImportMode = "Copy" # Leaves files in download folder -
Seeding torrents:
- Files remain until seeding goals met
-
Solution: Adjust seeding limits:
toml [Radarr-Movies.Torrent.SeedingMode] MaxUploadRatio = 1.0 # Lower ratio MaxSeedingTime = 86400 # 1 day RemoveTorrent = 1 # Remove when ratio met -
MaximumDeletablePercentage protection:
toml [Radarr-Movies.Torrent] MaximumDeletablePercentage = 0.99 # Won't delete nearly-complete
Configuration Issues¶
Config Changes Not Taking Effect¶
Solutions:
- Restart Torrentarr:
- Config is loaded only at startup
-
Changes require restart to apply
-
Check config syntax:
- TOML syntax errors prevent loading
-
Test with online TOML validator
-
Check config location:
- Docker:
/config/config.toml - Native:
~/config/config.toml -
Verify Torrentarr is reading the correct file
-
Enable debug logging:
toml [Settings] ConsoleLevel = "DEBUG"Look for config loading messages
Config File Regenerates or Resets¶
Possible Causes:
- File permissions:
- Torrentarr can't write to config file
-
Solution: Fix permissions:
-
Invalid syntax:
- Torrentarr detected invalid TOML and regenerated defaults
-
Solution: Restore from backup, fix syntax errors
-
Config migration:
- Torrentarr auto-migrates old configs
- Check logs for migration messages
- Backups created at
/config/config.toml.backup_*
WebUI Issues¶
Can't Access WebUI¶
Solutions:
-
Check WebUI settings:
toml [WebUI] Host = "0.0.0.0" # Listen on all interfaces Port = 6969 # Default port -
Test connection:
-
Check firewall:
-
Docker port mapping:
WebUI Requires Token But I Don't Have One¶
Solution:
-
Token is optional:
toml [WebUI] Token = "" # Empty = no authentication required -
If Token is set but lost:
- Edit
/config/config.toml - Set
Token = "" -
Restart Torrentarr
-
Access logs without WebUI:
Logging Issues¶
Logs Not Being Created¶
Solutions:
-
Enable logging:
toml [Settings] Logging = true -
Check log directory:
- Docker:
/config/logs/ - Native:
~/logs/ -
Verify directory exists and is writable
-
Check permissions:
Logs Too Verbose or Too Quiet¶
Adjust logging level:
Recommendations:
- Production:
INFOorWARNING - Troubleshooting:
DEBUG - Development:
TRACE(very verbose!)
Getting More Help¶
If your issue isn't covered here:
-
Enable debug logging:
toml [Settings] ConsoleLevel = "DEBUG" -
Collect relevant logs:
Main.log– Core Torrentarr operationsRadarr-Movies.log– Arr-specific processing-
WebUI.log– WebUI-related issues -
Check FAQ: Frequently Asked Questions
-
Report issue on GitHub: github.com/Feramance/Torrentarr/issues
- Include config (redact API keys!)
- Include relevant log excerpts
- Describe expected vs. actual behavior
Error Reference¶
Exception Hierarchy¶
Torrentarr uses a custom exception hierarchy for error handling (C# types in Torrentarr.Core / Infrastructure). Base and derived types represent configuration, connection, and Arr-related failures.
Exit Codes¶
| Code | Meaning | Description |
|---|---|---|
| 0 | Success | Torrentarr exited normally |
| 1 | General Error | Unspecified error |
| 2 | Config Error | Configuration file error |
| 3 | Connection Error | Cannot connect to required service |
| 4 | Permission Error | Insufficient file/directory permissions |
| 5 | Database Error | Database initialization or access error |
| 130 | SIGINT | User interrupted (Ctrl+C) |
| 143 | SIGTERM | Terminated by system or user |
HTTP Status Codes¶
Torrentarr WebUI API returns standard HTTP status codes:
| Code | Meaning | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 400 | Bad Request | Invalid request parameters |
| 401 | Unauthorized | Missing or invalid API token |
| 404 | Not Found | Endpoint or resource not found |
| 500 | Internal Server Error | Server error |