Jackett/Jackett · error · Exception
Unexpected response content from indexer request: {jsonRespo
Error message
Unexpected response content from indexer request: {jsonResponse.Message ?? "Check the logs for more information."} What it means
Thrown by MyAnonamouse.PerformQuery when the JSON deserialized successfully but jsonResponse.Data is null, and the response is not the benign 'Nothing returned, out of' sentinel (which returns an empty list normally). This is the structured application-error path: MyAnonamouse returned valid JSON with an error/rate-limit condition, surfacing jsonResponse.Message (or a fallback log hint) as the exception text.
Source
Thrown at src/Jackett.Common/Indexers/Definitions/MyAnonamouse.cs:288
{
throw new Exception(response.ContentString);
}
try
{
var sitelink = new Uri(SiteLink);
var jsonResponse = JsonConvert.DeserializeObject<MyAnonamouseResponse>(response.ContentString);
var error = jsonResponse.Error;
if (error.IsNotNullOrWhiteSpace() && error.StartsWithIgnoreCase("Nothing returned, out of"))
{
return releases;
}
if (jsonResponse.Data == null)
{
throw new Exception($"Unexpected response content from indexer request: {jsonResponse.Message ?? "Check the logs for more information."}");
}
foreach (var item in jsonResponse.Data)
{
var id = item.Id;
var details = new Uri(sitelink, $"/t/{id}");
var isFreeLeech = item.Free || item.PersonalFreeLeech;
var release = new ReleaseInfo
{
Guid = details,
Title = item.Title.Trim(),
Description = item.Description.Trim(),
Link = GetDownloadUrl(id),
Details = details,
Category = MapTrackerCatToNewznab(item.Category),
PublishDate = DateTime.ParseExact(item.Added, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToLocalTime(),View on GitHub (pinned to adff194147)
Solutions
- Read jsonResponse.Message in the exception — it states the API's reason (rate limit, permission, etc.).
- If rate-limited, reduce Jackett query frequency and offset/limit parameters.
- If permission-related, verify the account standing on MyAnonamouse.
- Retry after the rate-limit window expires.
Example fix
// before
if (jsonResponse.Data == null)
{
throw new Exception($"Unexpected response content from indexer request: {jsonResponse.Message ?? "Check the logs for more information."}");
}
// after — distinguish rate-limit (retryable) from hard errors
if (jsonResponse.Data == null)
{
var msg = jsonResponse.Message ?? "unknown";
if (msg.ContainsIgnoreCase("rate") || msg.ContainsIgnoreCase("limit"))
throw new Exception($"MyAnonamouse rate limit: {msg}");
throw new Exception($"Unexpected MyAnonamouse response: {msg}");
} Defensive patterns
Strategy: try-catch
Validate before calling
// Inspect jsonResponse fields before the null-Data throw
if (jsonResponse.Data == null && jsonResponse.Message.IsNotNullOrWhiteSpace())
logger.Warn("MyAnonamouse returned structured message: {0}", jsonResponse.Message); Type guard
private static bool IsRateLimitMessage(string msg) =>
msg != null && (msg.ContainsIgnoreCase("rate") || msg.ContainsIgnoreCase("limit")); Try / catch
if (jsonResponse.Data == null)
{
if (IsRateLimitMessage(jsonResponse.Message))
throw new Exception($"MyAnonamouse rate limit: {jsonResponse.Message}"); // retryable upstream
throw new Exception($"Unexpected MyAnonamouse response: {jsonResponse.Message ?? "Check logs"}");
} Prevention
- Read jsonResponse.Message to distinguish rate-limit from permission errors.
- Back off search frequency when rate-limit messages appear.
- Verify account permissions if non-rate-limit messages recur.
When it happens
Trigger: The search JSON parses into MyAnonamouseResponse, but Data is null while Error does not start with 'Nothing returned, out of'. The code throws with jsonResponse.Message if present, else a 'Check the logs' fallback. Typical of API rate-limit responses or permission errors returned as structured JSON.
Common situations: Rate-limit JSON response (Data null, Message describes the limit); account permission error; the search exceeded allowed pagination (the 'out of' case is handled, but other limit messages are not); API version returning a new error envelope.
Related errors
- {response.ContentString}
- Indexer Error: {jsonResponse.StatusMessage}
- Invalid response received from M-Team. Response from API: {j
- Unexpected response from indexer request: "{errorReason}"
- Unexpected response from indexer request: {jsonResponse.Erro
AI-assisted analysis of Jackett/Jackett@adff194147 (2026-08-13).
Data as JSON: /api/errors/1c172c2be3d1bc01.
Report an issue: GitHub.