Radarr/Radarr · warning · ImportListException
Plex API responded with html content. Site is likely blocked
Error message
Plex API responded with html content. Site is likely blocked or unavailable.
What it means
Thrown by PlexParser.PreProcess when the response Content-Type contains 'text/json' but the request Accept did not request 'text/json', indicating the server returned an HTML page (login/captcha/block) instead of Plex JSON. It is an ImportListException tied to the response.
Source
Thrown at src/NzbDrone.Core/ImportLists/Plex/PlexParser.cs:63
Title = item.Title,
Year = item.Year
});
}
return movies;
}
protected virtual bool PreProcess(ImportListResponse importListResponse)
{
if (importListResponse.HttpResponse.StatusCode != HttpStatusCode.OK)
{
throw new ImportListException(importListResponse, "Plex API call resulted in an unexpected StatusCode [{0}]", importListResponse.HttpResponse.StatusCode);
}
if (importListResponse.HttpResponse.Headers.ContentType != null && importListResponse.HttpResponse.Headers.ContentType.Contains("text/json") &&
importListResponse.HttpRequest.Headers.Accept != null && !importListResponse.HttpRequest.Headers.Accept.Contains("text/json"))
{
throw new ImportListException(importListResponse, "Plex API responded with html content. Site is likely blocked or unavailable.");
}
return true;
}
private string FindGuid(List<PlexSectionItemGuid> guids, string prefix)
{
var scheme = $"{prefix}://";
return guids?.FirstOrDefault((guid) => guid.Id.StartsWith(scheme))?.Id.Replace(scheme, "");
}
}
}
View on GitHub (pinned to ca451608dc)
Solutions
- Re-authenticate the Plex list (OAuth) so requests carry a valid token and Plex returns JSON.
- Check for network-level blocks (VPN/ISP/Cloudflare) by opening the Plex API URL in a browser from the Radarr host.
- Disable the list if the block is permanent in your region.
Defensive patterns
Strategy: validation
Validate before calling
var ct = importResponse.HttpResponse.Headers.ContentType ?? string.Empty;
if (ct.Contains("text/html")) { /* blocked/login page served — re-auth or fix network */ } Type guard
static bool IsHtmlIntercept(Exception ex) => ex is ImportListException && ex.Message.Contains("html content"); Try / catch
try { parser.ParseResponse(importResponse); }
catch (ImportListException ex) when (ex.Message.Contains("html content")) { _logger.Warn("Plex returned an HTML page; re-auth or check network: {0}", ex.Response.Request.Url); } Prevention
- Re-authenticate the Plex list so a valid token is sent.
- Check for CDN/ISP interception by opening the Plex API URL from the Radarr host.
When it happens
Trigger: Response Content-Type contains 'text/json' AND request Accept is non-null AND does NOT contain 'text/json'. Practically: Plex.tv (or an intermediary) served an HTML interstitial labelled with a JSON-ish content type.
Common situations: Cloudflare/Plex challenge page, an ISP block redirect, or the access token being rejected so Plex returns its HTML login page. Network-level interception is the usual cause.
Related errors
- List responded with html content. Site is likely blocked or
- List responded with html content. Site is likely blocked or
- Radarr API responded with html content. Site is likely block
- Request responded with html content. Site is likely blocked
- QueryParam callbackUrl invalid.
AI-assisted analysis of Radarr/Radarr@ca451608dc (2026-08-13).
Data as JSON: /api/errors/4ae97c688bb1672e.
Report an issue: GitHub.