diff --git a/src/NzbDrone.Core/Indexers/Definitions/BeyondHD.cs b/src/NzbDrone.Core/Indexers/Definitions/BeyondHD.cs index e3c0fc054..c09a0aede 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/BeyondHD.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/BeyondHD.cs @@ -182,18 +182,23 @@ public BeyondHDParser(BeyondHDSettings settings, IndexerCapabilitiesCategories c public IList ParseResponse(IndexerResponse indexerResponse) { var torrentInfos = new List(); - - if (indexerResponse.HttpResponse.StatusCode != HttpStatusCode.OK) + var indexerHttpResponse = indexerResponse.HttpResponse; + if (indexerHttpResponse.StatusCode != HttpStatusCode.OK) { - throw new IndexerException(indexerResponse, $"Unexpected response status {indexerResponse.HttpResponse.StatusCode} code from API request"); + throw new IndexerException(indexerResponse, $"Unexpected response status {indexerHttpResponse.StatusCode} code from API request"); } - if (!indexerResponse.HttpResponse.Headers.ContentType.Contains(HttpAccept.Json.Value)) + if (!indexerHttpResponse.Headers.ContentType.Contains(HttpAccept.Json.Value)) { - throw new IndexerException(indexerResponse, $"Unexpected response header {indexerResponse.HttpResponse.Headers.ContentType} from API request, expected {HttpAccept.Json.Value}"); + throw new IndexerException(indexerResponse, $"Unexpected response header {indexerHttpResponse.Headers.ContentType} from API request, expected {HttpAccept.Json.Value}"); } - var jsonResponse = new HttpResponse(indexerResponse.HttpResponse); + if (indexerResponse.Content.ContainsIgnoreCase("Invalid API Key")) + { + throw new IndexerAuthException("API Key invalid or not authorized"); + } + + var jsonResponse = new HttpResponse(indexerHttpResponse); foreach (var row in jsonResponse.Resource.Results) {