## TL;DR
Pycurl error 7 is a plain connection failure at the curl layer: nothing answered at the address, port, or through the proxy wfuzz was told to use. Prove reachability with curl itself, unset or correct any stale proxy the environment hands wfuzz, and confirm the target URL and port before blaming the wordlist or payloads.

```text
wfuzz "pycurl ERROR 7: Failed to connect" on authorized target
```

## Use this when
- Every wfuzz request fails with pycurl error 7 against an authorized target.
- Curl or a browser reaches the same host, so the target is up.

## Not for this skill when
- Wfuzz connects and returns HTTP status codes, even errors. The scan is working; tune filters instead.
- No tool can reach the host. That is a network or scope problem, not a wfuzz problem.

## Steps
1. Reproduce outside wfuzz: request the exact authorized URL with curl verbose and note whether it connects, and to which address. Verify: Verify: plain curl either connects, isolating wfuzz, or fails the same way, pointing at the network.
2. Inspect the environment wfuzz inherits for proxy variables and any wfuzz proxy option pointing at a dead or wrong proxy. Verify: Verify: the proxy setting is either correct and live, or removed for a direct connection.
3. Check name resolution from the tester box for the in-scope hostname and try the resolved address only if the scope allows IP-based testing. Verify: Verify: the name resolves to the expected in-scope address.
4. Verify the pycurl install itself with a request to a known reachable test page, ruling out a broken libcurl binding. Verify: Verify: the control request succeeds through the same pycurl wfuzz uses.
5. Rerun wfuzz against the authorized target with a tiny wordlist as a smoke test before launching the full run. Verify: Verify: the smoke run returns real HTTP codes for known and unknown paths.

## Variant phrasings
### wfuzz pycurl error 7 proxy environment
The proxy phrasing, the most common tester-box cause.
### wfuzz cannot connect but curl works
The tool-isolation phrasing.
### pycurl failed to connect all requests wfuzz
The total-failure phrasing.

Compatibility: Compatibility: wfuzz 3.x on Python 3 with pycurl; proxy variables are inherited from the launching shell on Linux and macOS.

## Why it happens
Wfuzz delegates all networking to pycurl, so connection problems surface as raw libcurl error numbers. Error 7 specifically means the connection attempt itself failed: refused, unroutable, or sent to a dead proxy. Because wfuzz adds proxy and environment handling on top, its view of the network can differ from a browser on the same box.

## Edge cases / pitfalls
- A working proxy for web browsing may refuse the high request rates of fuzzing; that shows up later as intermittent 7s, so pace the run.
- VPN splits can route the browser through the tunnel while the shell does not; compare routes, not just tools.
- Do not swap to the raw IP casually: virtual hosting and TLS names can change the application you are testing, and scope may name hostnames only.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_dqLtlRgQuAXKhhmx2HvhaA
