Jackett/Jackett · error · Exception
Unknown or missing parameters
Error message
Unknown or missing parameters
What it means
Thrown by TorrentSyndikat.CheckResponseStatus when the download endpoint returns HTTP 400 BadRequest. The switch maps each status to a fixed message; 400 is reported as 'Unknown or missing parameters', indicating the request URL/body the client built is malformed rather than an auth problem.
Source
Thrown at src/Jackett.Common/Indexers/Definitions/TorrentSyndikat.cs:297
return releases;
}
public override async Task<byte[]> Download(Uri link)
{
var response = await RequestWithCookiesAsync(link.ToString() + "&apikey=" + ConfigData.Key.Value, string.Empty);
CheckResponseStatus(response.Status, "download");
return response.ContentBytes;
}
private static void CheckResponseStatus(HttpStatusCode status, string scope)
{
switch (status)
{
case HttpStatusCode.OK:
return;
case HttpStatusCode.BadRequest:
throw new Exception("Unknown or missing parameters");
case HttpStatusCode.Unauthorized:
throw new Exception("Wrong API-Key");
case HttpStatusCode.Forbidden:
throw new Exception("API-Key has no authorization for the endpoint / scope " + scope);
default:
throw new Exception("Unexpected response status code " + status);
}
}
}
}
View on GitHub (pinned to adff194147)
Solutions
- Inspect the exact URL passed to RequestWithCookiesAsync in Download: confirm it includes the id/token and the apikey is non-empty.
- Validate ConfigData.Key.Value is set before calling Download (guard at the download boundary).
- Update the indexer's release-link parsing if the site changed how download links are embedded in search results.
Example fix
// before
var response = await RequestWithCookiesAsync(link.ToString() + "&apikey=" + ConfigData.Key.Value, string.Empty);
CheckResponseStatus(response.Status, "download");
// after - validate inputs before the request
if (string.IsNullOrWhiteSpace(ConfigData.Key.Value))
throw new Exception("TorrentSyndikat API key is empty; cannot download.");
var response = await RequestWithCookiesAsync(link.ToString() + "&apikey=" + ConfigData.Key.Value, string.Empty);
CheckResponseStatus(response.Status, "download"); Defensive patterns
Strategy: validation
Validate before calling
// Validate the download URL and key before issuing the request
if (link == null || string.IsNullOrWhiteSpace(link.Query))
throw new InvalidOperationException("TorrentSyndikat download link is missing query parameters.");
if (string.IsNullOrWhiteSpace(ConfigData.Key.Value))
throw new InvalidOperationException("TorrentSyndikat API key is empty; cannot download."); Type guard
static bool IsValidDownloadLink(Uri link) =>
link != null && !string.IsNullOrWhiteSpace(link.Query) && link.Query.Contains("id="); Try / catch
try
{
var response = await RequestWithCookiesAsync(link.ToString() + "&apikey=" + ConfigData.Key.Value, string.Empty);
CheckResponseStatus(response.Status, "download");
}
catch (Exception ex) when (ex.Message == "Unknown or missing parameters")
{
// 400: the link is malformed; re-derive it from a fresh search result
logger.Warn($"TorrentSyndikat download link rejected as malformed: {link}");
throw;
} Prevention
- Ensure release download links are parsed with the required id/token parameter.
- Normalize the API key (trim whitespace) before concatenating into the URL.
- Treat 400 on download as a parse/format defect in the release link and re-fetch the release.
When it happens
Trigger: The Download method calls RequestWithCookiesAsync(link + "&apikey=" + key) and the response.Status is HttpStatusCode.BadRequest, so CheckResponseStatus maps it to this exception.
Common situations: The release link passed to Download is missing a required query parameter (id, hash) because the indexer's parse step changed format; the apikey is empty so the concatenated URL is malformed; the site's download endpoint contract changed to require an extra parameter.
Related errors
- Wrong API-Key
- API-Key has no authorization for the endpoint / scope ${scop
- Unknown error in download: {response.ContentBytes}
- {result.ContentString}
- Could not find any releases
AI-assisted analysis of Jackett/Jackett@adff194147 (2026-08-13).
Data as JSON: /api/errors/3f9ddb8708720771.
Report an issue: GitHub.