epi052/feroxbuster · error

{}

Error message

{}

What it means

make_request bails with the plain reqwest error for all non-certificate failures. After categorizing the error (Connect/Request/Other) in stats and logging 'Error while making request', the raw error is propagated to the caller - this is the generic per-request failure path.

Solutions

  1. Read the logged 'Error while making request: {e}' line for the concrete cause
  2. Confirm the host:port is reachable with curl
  3. Lower concurrency (-t) or add --rate-limit if the server is dropping connections
  4. Check/fix --proxy configuration
  5. Retry - transient network errors are counted in stats but shouldn't stop a robust scan

Example fix

// before
feroxbuster -u http://target:8080 -p http://127.0.0.1:3128
// after
curl -I http://target:8080   # verify reachability
feroxbuster -u http://target:8080   # drop or fix the proxy
Defensive patterns

Strategy: retry

Validate before calling

curl -sS -o /dev/null --max-time 5 http://target:8080 && echo reachable || echo unreachable

Try / catch

// per-request errors during a scan are non-fatal; on full failure:
// retry with lower concurrency and inspect 'Error while making request: {e}' logs
feroxbuster -u http://target -t 20 --rate-limit 50

Prevention

When it happens

Trigger: make_request's client call returns Err that is not a certificate error: connection refused/timed out, DNS failure, connection reset, redirect loops, or body/transport errors.

Common situations: Target down or firewalled, wrong port/scheme, overloaded server dropping requests mid-scan, proxy unreachable, or IPv6 connectivity problems.

Understand the failure class

Background: 'Something went wrong' / 'Request failed (500)' / 'HTTP error! status: 404' — what failed HTTP requests actually mean and how to find the real cause — this error's family across 28 libraries.

Related errors


AI-assisted analysis of epi052/feroxbuster@1f595dab5c (2026-09-13). Data as JSON: /api/errors/2befd62621bb9082. Report an issue: GitHub.

Appendix: source

Thrown at src/utils.rs:321

                    send_command!(tx_stats, AddError(Redirection));

                    ferox_print(&report, &PROGRESS_PRINTER)
                };
            } else if is_certificate_error(&e) {
                log::warn!("Certificate error detected: {e}");
                send_command!(tx_stats, AddError(Certificate));
                bail!(":SSL: {e}");
            } else if e.is_connect() {
                send_command!(tx_stats, AddError(Connection));
            } else if e.is_request() {
                send_command!(tx_stats, AddError(Request));
            } else {
                send_command!(tx_stats, AddError(Other));
            }

            log::warn!("Error while making request: {e}");
            bail!("{}", e)
        }
        Ok(resp) => {
            log::trace!("exit: make_request -> {resp:?}");
            send_command!(tx_stats, AddStatus(resp.status()));
            Ok(resp)
        }
    }
}

/// Helper to create the standard line for output to file/terminal
///
/// example output:
/// 200      127l      283w     4134c http://localhost/faq
pub fn create_report_string(
    status: &str,
    method: &str,
    line_count: &str,
    word_count: &str,

View on GitHub (pinned to 1f595dab5c)