Guide

FlareSolverr Not Working? Every Error, What It Means, and What a Proxy Fixes

Challenge not detected, timeout after 60000 ms, cookies not valid, IP banned: what each FlareSolverr error means, its fix, and where a proxy is the missing piece.

HProxy Team··9 min read
HProxy.Guide

Free proxies won't hold up here.

Shared datacenter IPs get flagged and dropped fast. When it has to hold, gaming, streaming, accounts, you need mobile and residential IPs that read as a real device, from $0.44/GB, pay as you go.

See plans & pricing

FlareSolverr is a small local service that does one job: when a site behind Cloudflare shows a challenge page instead of content, it opens a real browser, waits for the challenge to pass, and hands back the resulting cookies and HTML so that your own client can carry on. It listens on port 8191, usually inside Docker, and it sits behind a large number of Jackett, Prowlarr, Sonarr, and Radarr setups as well as plenty of scrapers. When people say it is "not working", the log almost always says something more specific, and four messages account for nearly every report.

Each of those messages means a different thing, and two of them are not FlareSolverr failing at all. This guide takes them one at a time, then covers the proxy configuration that fixes the largest group of them, and ends with the honest list of jobs FlareSolverr cannot do no matter how it is configured, because a tool that is asked to do the wrong job looks broken.

Message in the logWhat actually happenedWhere the fix is
Challenge not detected!Page loaded; no challenge FlareSolverr recognisesSection 1
Error solving the challenge. Timeout after 60000 ms.Challenge present, not passed in timeSection 2
Cloudflare has blocked this request. Probably your IP is banned for this siteHard block on the exit IP; nothing to solveSection 3
The cookies provided by FlareSolverr are not valid (Jackett, Prowlarr)Cookie solved on one IP, used from anotherSection 4
Captcha detected but no automatic solver is configured.An interactive captcha; FlareSolverr cannot solve thoseSection 6
net::ERR_PROXY_CONNECTION_FAILED inside FlareSolverrIts browser cannot reach the proxy you gave itSection 5

1. "Challenge not detected"

FlareSolverr loaded the page, looked for the challenge types it knows, and found none. Two different situations produce this, and they need opposite responses.

In the first, the site is simply not challenging you. The page came back with content, FlareSolverr had nothing to do, and it says so. Requests through FlareSolverr in that state are pure overhead, a full browser launch for every fetch, and the client that fed it the URL could have fetched the page directly. Test by opening the URL in a normal browser from the same connection; if the page loads without any interstitial, drop FlareSolverr for that site.

In the second, the site is challenging you with something FlareSolverr does not recognise. Cloudflare has been retiring its old JavaScript interstitial in favour of managed challenges and the Turnstile widget, and a page that shows a Turnstile box, or a challenge that finishes only after a click, does not match what FlareSolverr is looking for. Updating to the current release is the first move, since detections get added. If the current release still reports no challenge on a page that plainly shows one, you are outside what the tool handles, and section 6 covers the alternatives.

Set LOG_LEVEL=debug and, for a one-off look, HEADLESS=false so the browser window is visible; watching what the page actually shows removes the guesswork.

2. "Error solving the challenge. Timeout after 60000 ms"

Here the challenge was detected and FlareSolverr waited for it to pass, and it did not pass within maxTimeout, which defaults to 60,000 milliseconds. Three causes, in order of how often they turn up.

The machine is slow or overloaded. FlareSolverr's own documentation warns that browsers consume a lot of memory and that a machine with little RAM should not make many requests at once. Every request without a session launches a browser. On a small VPS or a NAS, a handful of parallel requests is enough to push each one past the timeout. Reduce concurrency on the client side, raise maxTimeout (120,000 is a common choice), and use sessions so that a browser is reused rather than launched per request.

The IP is failing the challenge. Cloudflare's challenge is not only a JavaScript puzzle; it weighs the reputation of the address it is talking to. A datacenter or VPS address that Cloudflare has seen abused, or that belongs to a hosting range under suspicion, can sit in the challenge loop indefinitely: the page reloads, re-challenges, and never clears. Raising the timeout does nothing for this. A different kind of address is the answer, which is what section 5 is about.

The browser is out of date. FlareSolverr drives a bundled browser, and a version that Cloudflare has learned to recognise fails challenges it used to pass. Update the container. If you run it outside Docker, make sure the browser and the driver match the versions the release expects.

3. "Cloudflare has blocked this request. Probably your IP is banned for this site"

Of the four messages this one is the clearest, and the one people most often try to fix in the wrong place. Cloudflare did not present a challenge. It answered with a block page for the address FlareSolverr is using, and the message says so: check in your web browser. Do exactly that, from the same machine. If a normal browser gets the same block, no configuration of FlareSolverr will change it, because the decision was made about the IP before any browser behaviour was examined.

Sites under scraping pressure ban whole hosting ranges, which is why this message is so common on a VPS and so rare from a home connection. What works is an address the site has no history with, and for a tool that needs the same address across the challenge and the requests that follow, that means a residential proxy with a sticky session, configured as in section 5. Do not respond by retrying in a loop; a banned range that keeps knocking stays banned.

4. "The cookies provided by FlareSolverr are not valid"

This message comes from Jackett and Prowlarr rather than from FlareSolverr itself, and it describes a handoff failure. FlareSolverr solved the challenge and received a clearance cookie. Jackett or Prowlarr then sent that cookie to the site, and the site rejected it. Cloudflare binds the clearance cookie to the IP address that solved the challenge, and to the user agent, so a cookie solved from one address is worthless from another.

The consumer used a different address than FlareSolverr did. The ways that happens:

  • IPv6 on one side. One container reaches the site over IPv6 and the other over IPv4. From the site's point of view those are two unrelated visitors. Disable IPv6 in both containers, or enable it in both.
  • A proxy or VPN on one side only. FlareSolverr is routed through a proxy and Jackett is not, or the reverse. Both must exit through the same address: set the same proxy in FlareSolverr's session and in the consumer's own proxy settings.
  • Different Docker networks. Two containers on different networks or hosts can have different egress paths, especially where one host has a VPN client running.

The user agent must match too. Jackett and Prowlarr handle that automatically by adopting the user agent FlareSolverr reports; a custom client must copy it from the response.

The test is simple: from inside each container, fetch an IP echo page and compare. If the two addresses differ, that is the bug, and no amount of FlareSolverr configuration fixes a cookie that is being replayed from the wrong place.

5. Using a proxy with FlareSolverr, and getting the session right

The proxy field in a request.get call routes FlareSolverr's browser through a proxy, and it accepts http://, socks4://, and socks5:// addresses:

{
  "cmd": "request.get",
  "url": "https://example.com/",
  "maxTimeout": 120000,
  "proxy": {"url": "http://203.0.113.7:8080"}
}

Two rules from FlareSolverr's own documentation trip people up. First, a username and password are only accepted in sessions.create, not in the per-request proxy. Second, when a request names a session, the per-request proxy is ignored and the session's proxy is used. So an authenticated proxy always goes through a session:

{
  "cmd": "sessions.create",
  "session": "resi-1",
  "proxy": {
    "url": "http://gateway.example:8080",
    "username": "user-session-abc123",
    "password": "pass"
  }
}

Requests then pass "session": "resi-1" and inherit the proxy. The PROXY_URL, PROXY_USERNAME, and PROXY_PASSWORD environment variables set a default for everything, and a request or session proxy overrides them. Destroy sessions with sessions.destroy when you are done, because each one holds a browser open.

The rule that matters more than any of the syntax: the proxy session has to be sticky. The clearance cookie is bound to the IP that solved the challenge. A rotating proxy that changes address on every request gives FlareSolverr a fresh IP for the challenge and your client a different one for the fetch, which reproduces the cookies-not-valid failure from section 4 with a proxy in the loop. Use a session that holds one address for the life of the cookie, and put the same session credentials in the consumer's proxy settings so that FlareSolverr and the client exit together. Our guide to sticky versus rotating sessions explains how a session id in the username keeps the address fixed, and the anti-bot solver proxy setup guide covers the same handoff for hosted solvers.

A few practical points on the proxy leg:

  • net::ERR_PROXY_CONNECTION_FAILED in FlareSolverr's log means its browser could not reach the proxy address. Inside Docker, 127.0.0.1 is the container, not your host; use the host's address, or run the container with host networking. SOCKS proxies that work in curl have produced this error inside FlareSolverr's browser in reported cases, so if an HTTP proxy endpoint is available, use it.
  • FlareSolverr tests connectivity at startup against TEST_URL, which defaults to a Google page. If the proxy or network cannot reach that, FlareSolverr fails to start; set TEST_URL to a page the route can reach.
  • Verify the proxy before you blame FlareSolverr. Our proxy checker confirms that it answers, supports HTTPS tunnels, and exits where you expect.
  • Do not expose port 8191 to the internet. FlareSolverr's documentation says so plainly, because an open instance is a free browser farm for anyone who finds it.

6. What FlareSolverr cannot do

A tool asked to do a job outside its design looks broken, and a fair share of "FlareSolverr not working" reports are exactly that.

Interactive captchas. FlareSolverr's documentation states that none of its captcha solvers work at this time, and it returns "Captcha detected but no automatic solver is configured" when it meets one. A Turnstile widget that requires verification, an hCaptcha, or a reCAPTCHA is outside its scope. For those, a solver API takes the challenge and returns a token; our guides on Cloudflare Turnstile and anti-bot solver APIs cover how that works and how to keep the proxy consistent across the handoff.

Other bot-management products. FlareSolverr targets Cloudflare. A site fronted by DataDome, PerimeterX, Akamai, or Kasada shows challenges FlareSolverr has no detection for, and the answer is the specific approach for that vendor. Our scraping past Cloudflare guide has links to each.

IP-based blocks. No browser solves an IP ban. If the address is blocked, the message in section 3 is what you get, and the only fix is a different address.

Volume. Each request is a browser. FlareSolverr at scale means a machine full of Chrome instances, and it is a poor fit for high-throughput scraping. For a job that needs thousands of pages an hour, a residential pool with sessions and a client that reuses the clearance cookie for its lifetime does far more per gigabyte of RAM than a browser per request.

The setup that works

For most FlareSolverr users the working configuration is short. Keep FlareSolverr current. Use sessions so that browsers are reused. Give it a maxTimeout that fits the machine. When challenges loop or the IP is banned, put a residential proxy with a sticky session in sessions.create, and put the same session in the consumer's proxy settings so that both exit from one address. And when the log reports a captcha or a vendor FlareSolverr does not know, stop fighting it and switch tools.

Our residential proxies support session ids in the username for exactly this kind of sticky handoff, and every address in the pool is verified by the same engine that runs our checker before it is handed out, so the IP FlareSolverr solves on is one that a site has no reason to distrust.

Frequently asked questions

Why does FlareSolverr say challenge not detected?
FlareSolverr loaded the page and found no challenge of a kind it recognises. Either the site is not challenging you at all, in which case your client can fetch the page directly and FlareSolverr is doing nothing, or the site is using a challenge type FlareSolverr does not handle, such as an interactive Turnstile widget or a newer managed challenge. Open the URL in a normal browser from the same connection to see which. For the second case, updating FlareSolverr sometimes helps and a captcha-solver service is the fallback.
How do I fix error solving the challenge, timeout after 60000 ms?
The challenge was present and FlareSolverr did not pass it within maxTimeout, which defaults to 60000 milliseconds. Raise maxTimeout in the request, reduce how many requests run at once, and update FlareSolverr so its browser is current. If the timeout persists on a datacenter or VPS IP, the challenge is failing on IP reputation rather than on time, and routing FlareSolverr through a residential proxy is the fix.
What does Cloudflare has blocked this request, probably your IP is banned mean?
Cloudflare answered with a hard block for the address FlareSolverr is using, so there is no challenge to solve. Server and VPS ranges are commonly blocked outright by sites under attack. Confirm by opening the site in a browser from the same IP. Only a different address fixes it, and a residential proxy set in FlareSolverr's session is the usual way to get one.
Why does Jackett or Prowlarr say the cookies provided by FlareSolverr are not valid?
The clearance cookie Cloudflare issues is bound to the IP address and user agent that solved the challenge. If FlareSolverr solved it from one address and Jackett or Prowlarr then uses the cookie from another, the site rejects it. The classic causes are one container reaching the site over IPv6 and the other over IPv4, a VPN or proxy on one side only, or different Docker networks. Give both the same route out: the same proxy on both, or IPv6 disabled on both.
How do I use a proxy with FlareSolverr?
Per request, add a proxy object with a url to request.get, using an http://, socks4://, or socks5:// address. Username and password are only accepted in sessions.create, and when a request names a session, the request-level proxy is ignored and the session's proxy is used. PROXY_URL, PROXY_USERNAME, and PROXY_PASSWORD environment variables set a default that requests and sessions override. Use a sticky proxy session, because a clearance cookie solved on one IP is invalid from another.
Does FlareSolverr solve CAPTCHAs?
No. Its own documentation says that none of the captcha solvers work at this time, and it returns captcha detected but no automatic solver is configured when it meets one. FlareSolverr passes Cloudflare's automatic challenges by driving a real browser. For interactive challenges, Turnstile widgets that require verification, hCaptcha, or reCAPTCHA, a solver API is the right tool.

Proxies that don't die mid-job

Residential, ISP, datacenter and mobile, verified by the same engine that runs tens of millions of checks. They read as a real device and hold up under load. Pay as you go, and your balance never expires. $0.44/GB is the 2,000 GB+ rate; a single gigabyte is $0.50/GB, with no minimum order.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup