From 42e2c8eddee9f5168eb028b782f8514ae9c67695 Mon Sep 17 00:00:00 2001 From: ThePhaseless Date: Wed, 7 Oct 2026 23:29:08 +0200 Subject: [PATCH] docs: add IPv6 to the troubleshooting steps Cloudflare binds cf_clearance to the address that solved the challenge. When IPv6 is on for only some containers, Byparr can solve over one address family while Prowlarr or Jackett replays the cookie over the other, and the indexer fails validation although Byparr reported success. FlareSolverr's troubleshooting wiki gives the same advice. The compose snippet was checked against the app image: the sysctl leaves the container with no IPv6 addresses, and /v1 still returns 200. Closes #411 Co-Authored-By: Claude Opus 5.5 --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index f374e7d..3151ec0 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,24 @@ services: `shm_size: 512mb` is usually enough; `stdin_open` and `tty` are only needed if your orchestrator runs the container without a TTY. +#### Solved in Byparr, rejected in Prowlarr/Jackett (IPv6) + +Cloudflare ties the `cf_clearance` cookie to the IP address that solved the challenge. If IPv6 is enabled on only some of your containers or networks, Byparr can solve the challenge over one address family while Prowlarr or Jackett sends the next request over the other. Cloudflare then rejects the cookie, and the indexer fails validation or keeps getting challenged even though Byparr reports success. + +Byparr and the app that calls it must reach the site from the same public IP. Disable IPv6 for both containers, for example in `compose.yaml`: + +```yaml +services: + byparr: + sysctls: + - net.ipv6.conf.all.disable_ipv6=1 + prowlarr: + sysctls: + - net.ipv6.conf.all.disable_ipv6=1 +``` + +If you defined your own Docker network with `enable_ipv6: true`, set it to `false` instead, or disable IPv6 on the host. + ### Local troubleshooting 1. Download [uv](https://docs.astral.sh/uv/getting-started/installation/)