diff --git a/src/NzbDrone.Core/IndexerProxies/FlareSolverr/FlareSolverr.cs b/src/NzbDrone.Core/IndexerProxies/FlareSolverr/FlareSolverr.cs index 62efabf0f..ab3ce017b 100644 --- a/src/NzbDrone.Core/IndexerProxies/FlareSolverr/FlareSolverr.cs +++ b/src/NzbDrone.Core/IndexerProxies/FlareSolverr/FlareSolverr.cs @@ -63,6 +63,10 @@ public override HttpResponse PostResponse(HttpResponse response) var result = JsonConvert.DeserializeObject(flaresolverrResponse.Content); + _logger.Debug("FlareSolverr response status: {0}, message: {1}", result.Status, result.Message); + _logger.Debug("FlareSolverr solution has response body: {0} (length: {1})", result.Solution.Response.IsNotNullOrWhiteSpace(), result.Solution.Response?.Length ?? 0); + _logger.Debug("FlareSolverr returned {0} cookies, UA: {1}", result.Solution.Cookies?.Length ?? 0, result.Solution.UserAgent); + var newRequest = response.Request; //Cache the user-agent so we can inject it in next request to avoid re-solve @@ -75,6 +79,7 @@ public override HttpResponse PostResponse(HttpResponse response) // gets 403'd because cf_clearance is bound to the solver's TLS fingerprint if (result.Solution.Response.IsNotNullOrWhiteSpace()) { + _logger.Debug("Using FlareSolverr response body directly (skipping cookie retry)"); return new HttpResponse( response.Request, response.Headers, @@ -85,7 +90,9 @@ public override HttpResponse PostResponse(HttpResponse response) } // Fallback: if FlareSolverr returned no body, try cookies (original behavior) + _logger.Debug("Attempting cookie-based retry for {0}", newRequest.Url); var finalResponse = _httpClient.Execute(newRequest); + _logger.Debug("Cookie retry response: {0} (CF protected: {1})", finalResponse.StatusCode, CloudFlareDetectionService.IsCloudflareProtected(finalResponse)); return finalResponse; }