Jackett/Jackett · error · Exception

Indexer API call returned an error [{jsonResponse.Error}]

Error message

Indexer API call returned an error [{jsonResponse.Error}]

What it means

Thrown in BroadcastheNetParser.ParseResponse when the BTN JSON-RPC response's top-level Error field is non-null. The BTN API uses JSON-RPC 2.0, where errors are returned as an error object rather than an HTTP status code.

Source

Thrown at src/Jackett.Common/Indexers/Definitions/BroadcasTheNet.cs:251

    {
        private readonly string _siteLink;
        private readonly TorznabCapabilitiesCategories _categories;

        public BroadcastheNetParser(string siteLink, TorznabCapabilitiesCategories categories)
        {
            _siteLink = siteLink;
            _categories = categories;
        }

        public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
        {
            var releases = new List<ReleaseInfo>();

            var jsonResponse = JsonConvert.DeserializeObject<BroadcastheNetResponse>(indexerResponse.Content);

            if (jsonResponse.Error != null)
            {
                throw new Exception($"Indexer API call returned an error [{jsonResponse.Error}]");
            }

            if (jsonResponse.Result?.Torrents?.Values == null)
            {
                return releases;
            }

            foreach (var btnResult in jsonResponse.Result.Torrents.Values)
            {
                var descriptions = new List<string>();

                if (btnResult.Series.IsNotNullOrWhiteSpace())
                {
                    descriptions.Add("Series: " + btnResult.Series);
                }

                if (btnResult.GroupName.IsNotNullOrWhiteSpace())
                {

View on GitHub (pinned to adff194147)

Solutions

  1. Check the bracketed error text: 'API key not found' -> regenerate key; 'rate limit' -> slow down queries; IP ban -> rotate IP / VPN.
  2. Update the API key in the indexer config.
  3. If the error is transient, reduce search frequency or rely on Jackett's cache.
  4. Consult https://btn.trackerstatus.info/ for BTN-side outages.
Defensive patterns

Strategy: try-catch

Try / catch

try { var releases = parser.ParseResponse(indexerResponse); }
catch (Exception e) when (e.Message.Contains("Indexer API call returned an error"))
{
    // parse the bracketed text: invalid key -> reconfigure; rate limit -> back off
    logger.Warn("BTN API error: {0}", e.Message);
}

Prevention

When it happens

Trigger: Any BTN API call (search/manual) where the server reports an error: invalid API key, rate limit exceeded, malformed method parameters, banned IP, or an internal BTN server error.

Common situations: API key revoked after setup; hitting the BTN rate limit (5s request delay enforced); IP banned; passing a tvdbId/parameter BTN does not accept; BTN performing maintenance.

Related errors


AI-assisted analysis of Jackett/Jackett@adff194147 (2026-08-13). Data as JSON: /api/errors/ded55e9721b46276. Report an issue: GitHub.