Potential Resolution to "Blocked by CloudFlare Protection" errors despite FlareSolverr success
I attest that there is not an existing issue for this?
- I have searched the existing open and closed issues
I attest this is not related to a Cardigann YML Indexer.
- I confirm this is not related to a Cardigann YML Indexer
Current Behavior
I believe I have found a solution for the reported issue of Prowlarr failing to connect to trackers despite Flaresolverr showing a successful challenge solve. It appears Flaresolverr only resolves domains/grabs cookies for a machine's IPv4 address, then Prowlarr resolves the tracker's IPv6 address and attempts to connect with an invalid cookie. Issues reporting this include #2527 and #2577
After disabling IPv6 networking for Prowlarr + Flaresolverr, the following trackers began working, resolving "Blocked by CloudFlare Protection" errors:
- 1337x
- uIndex
- KickassTorrents (dot) ws
- Magnet Cat
- EZTV
The Pirate Bay is still not working, I get the message Unable to access apibay (dot) org, blocked by CloudFlare Protection, but when accessing apibay (dot) org in my web browser, I get a 403 Forbidden Nginx error, so this may be unrelated.
I am not entirely sure how this issue would be remediated when running the software directly on a host machine, but since I'm running everything through Docker, I'm able to easily disable IPv6 networking in compose.yaml which solves the issue.
Expected Behavior
When using Prowlarr + Flaresolverr, both programs should resolve hostnames to the same IP address to ensure cookies grabbed by Flaresolverr work for Prowlarr's indexing requests. This clearly appears to be an issue with how Flaresolverr resolves hostnames, but I'm posting here as well since I originally ran into the issue with Prowlarr and it appears other users are also experiencing this issue.
Steps To Reproduce
Reproduction
- Make sure your system supports IPv6 by running
curl -6 icanhazip.com(should output your WAN IPv6 address) - Set up the following
compose.yamlfile:
x-dns-config: &dns-config
dns:
# radicalDNS - https://libreops.cc/radicaldns.html
- 88.198.92.222
- 192.71.166.92
- "2a01:4f8:1c0c:82c0::1"
- "2a03:f80:30:be4e:192:71:166:92"
networks:
default:
enable_ipv4: true
enable_ipv6: true
services:
flaresolverr:
image: "ghcr.io/flaresolverr/flaresolverr:latest"
container_name: flaresolverr
<<: *dns-config
environment:
- LOG_LEVEL=debug
- TZ=Etc/UTC
- LANG=en_US
- BROWSER_WAIT_TIMEOUT=3
- PORT=8191
- "LOG_HTML=true"
healthcheck:
test: "curl -f http://localhost:8191 || exit 1"
interval: 1m
timeout: 5s
retries: 3
start_period: 1m
start_interval: 22s
restart: unless-stopped
prowlarr:
image: "ghcr.io/hotio/prowlarr:latest"
container_name: prowlarr
<<: *dns-config
environment:
- LOG_LEVEL=debug
- TZ=Etc/UTC
- PUID=1000
- PGID=1000
- UMASK=002
- WEBUI_PORTS=9696/tcp
ports:
- "9696:9696"
volumes:
- "./data/prowlarr/config:/config"
depends_on:
flaresolverr:
condition: service_healthy
restart: true
restart: unless-stopped- Start the services with
docker compose up -d - Check if Prowlarr is resolving domain names to IPv6 addresses by running
sudo docker compose exec -it prowlarr curl -fsSL http://icanhazip.com- You should see your IPv6 address returned.
- Check if Flaresolverr is resolving domain names to IPv6 addresses by running
sudo docker compose exec -it flaresolverr \
curl -fsSL \
-X POST \
-H 'Content-Type: application/json' \
'http://localhost:8191/v1' \
--data-raw '{"cmd": "request.get", "url": "http://icanhazip.com", "maxTimeout": 20000}' \
| grep --color=always -i "response"- You should see your external IPv4 address reflected in the response data.
- Open Prowlarr in a web browser, configure Flaresolverr, and attempt to add indexer which require Flaresolverr (1337x and uIndex are good options to test)
- You should encounter "Blocked by CloudFlare Protection" issues when attempting to add these indexers.
Remediation
- Edit the
compose.yamlfile created in step 1 of Reproduction, and change thex-dns-configandnetworkssection to look like this:
x-dns-config: &dns-config
dns:
# radicalDNS - https://libreops.cc/radicaldns.html
- 88.198.92.222
- 192.71.166.92
#- "2a01:4f8:1c0c:82c0::1"
#- "2a03:f80:30:be4e:192:71:166:92"
networks:
default:
enable_ipv4: true
# NB: Change this to "false"!!
enable_ipv6: false- Run
sudo docker compose down; sudo docker compose up -d - Repeat step 4-7 from Reproduction, seeing now that only an IPv4 address is returned.
- Refresh the Prowlarr instance in your browser and attempt to add 1337x and uIndex again
- You should now see that the "Blocked by CloudFlare Protection" errors no longer occur.
Environment
- OS: Debian 13 Trixie
- Prowlarr: 2.5.2.5491 (`release-0e8cd5f by hotio`)
- Flaresolverr: 3.5.0 (`ghcr.io/flaresolverr/flaresolverr:latest`)
- Flaresolverr platform: `Linux-6.12.101+deb13-amd64-x86_64-with-glibc2.36`
- Flaresolverr Chromium: major version 148
- Docker Install: Yes
- Docker version: 29.7.2, build `a7dcaa6`
- Using Reverse Proxy: Yes
- Browser: Waterfox 6.7.1.1What branch are you running?
Master
Trace Logs?
I don't believe trace logs are applicable in this case but I can provide them if needed.
I attest that Trace Logs have been provided as applicable. Reports will be closed if the required logs are not provided.
- I attest that I have read and followed the steps in the wiki link above and provided the required trace logs - the logs contain
trace- that are relevant and show this issue.
Source: Prowlarr/Prowlarr