Sonarr/Sonarr · warning · DownloadClientUnavailableException

All download clients for {downloadProtocol} are not availabl

Error message

All download clients for {downloadProtocol} are not available

What it means

GetFilteredDownloadClients: at least one client is blocked, no non-blocked clients remain, and filterBlockedClients is true, so every client for the protocol is unavailable. DownloadClientUnavailableException. Transient.

Source

Thrown at src/NzbDrone.Core/Download/DownloadClientProvider.cs:233

                    {
                        throw new DownloadClientUnavailableException($"Indexer specified download client is not available due to recent failures for {indexer.Name}");
                    }

                    return [client];
                }
            }

            if (blockedProviders.Any())
            {
                var nonBlockedProviders = availableProviders.Where(v => !blockedProviders.Contains(v.Definition.Id)).ToList();

                if (nonBlockedProviders.Any())
                {
                    availableProviders = nonBlockedProviders;
                }
                else if (filterBlockedClients)
                {
                    throw new DownloadClientUnavailableException($"All download clients for {downloadProtocol} are not available");
                }
                else
                {
                    _logger.Trace("No non-blocked Download Client available{0}.", forSingleClient ? ", retrying blocked one" : $" for {downloadProtocol}, returning all clients");
                }
            }

            return availableProviders;
        }
    }
}

View on GitHub (pinned to da2284d7ea)

Solutions

  1. Resolve connectivity to the clients (run Test on each in Settings -> Download Clients).
  2. Wait out the cooldown and retry.
  3. Add or re-enable a healthy client for that protocol as a fallback.
Defensive patterns

Strategy: retry

Validate before calling

var blocked = new HashSet<int>(_downloadClientStatusService.GetBlockedProviders().Select(v => v.ProviderId));
var healthy = _downloadClientFactory.GetAvailableProviders()
    .Where(c => c.Protocol == protocol && !blocked.Contains(c.Definition.Id)).ToList();
if (!healthy.Any()) { /* all blocked: defer the grab or alert */ }

Try / catch

try { /* get clients with filterBlockedClients=true */ }
catch (DownloadClientUnavailableException ex) when (ex.Message.Contains("are not available"))
{
    // transient: back off and retry; alert the operator about a possible outage
}

Prevention

When it happens

Trigger: All enabled clients for the release's DownloadProtocol are simultaneously in the blocked-providers set, and the caller requested blocked clients be filtered out.

Common situations: A shared outage (seedbox/tracker down, or a usenet provider outage) knocks out every client of a protocol; misconfiguration causes repeated auth failures across all clients.

Related errors


AI-assisted analysis of Sonarr/Sonarr@da2284d7ea (2026-08-13). Data as JSON: /api/errors/429aa32c1f7091bc. Report an issue: GitHub.