wpscanteam/wpscan · error · WPScan::Error::TargetDown
The url supplied '#{response.request.url}' seems to be down
Error message
The url supplied '#{response.request.url}' seems to be down (#{response.return_message}) What it means
Raised by WPScan::Controller::Core#check_target_availability (app/controllers/core.rb:73) when the initial GET to the --url value returns Typhoeus status code 0, meaning the request never obtained an HTTP response at all. The message embeds the exact request URL plus libcurl's return_message (e.g. 'Could not resolve host', 'Connection timed out') so the failing transport step is identifiable. WPScan aborts immediately because every subsequent request would fail for the same reason.
Source
Thrown at app/controllers/core.rb:73
def maybe_output_banner_help_and_version
output('banner') if WPScan::ParsedCli.banner
output('help', help: option_parser.simple_help, simple: true) if WPScan::ParsedCli.help
output('help', help: option_parser.full_help, simple: false) if WPScan::ParsedCli.hh
output('version') if WPScan::ParsedCli.version
exit(WPScan::ExitCode::OK) if WPScan::ParsedCli.help || WPScan::ParsedCli.hh || WPScan::ParsedCli.version
end
# Checks that the target is accessible, raises related errors otherwise.
#
# @return [ Void ]
def check_target_availability
res = WPScan::Browser.get(target.url)
case res.code
when 0
raise Error::TargetDown, res
when 401
raise Error::HTTPAuthRequired
when 403
raise Error::AccessForbidden, WPScan::ParsedCli.random_user_agent unless WPScan::ParsedCli.force
when 407
raise Error::ProxyAuthRequired
end
handle_redirection(res)
end
# Checks whether the response or its redirect chain contains a SAMLRequest,
# indicating that the target requires SAML authentication.
#
# @param [ Addressable::URI ] effective_uri Final URL after following redirects
# @param [ Typhoeus::Response ] homepage_res Response whose redirect chain to inspect
#
# @return [ Boolean ]View on GitHub (pinned to 62c9cef471)
Solutions
- Re-check the --url value for typos and confirm the site loads from the same machine (curl -I <url>)
- If --proxy is set, verify the proxy is reachable and can reach the target (curl -x <proxy> -I <url>)
- If the return_message mentions SSL/TLS, inspect the certificate or firewall rules on port 443
- Raise --connect-timeout / --request-timeout if the host is slow to answer
- If the message says 'Could not resolve host', fix DNS (resolv.conf) or use a resolvable hostname
Example fix
# before wpscan --url http://exmaple.com # => The url supplied 'http://exmaple.com' seems to be down (Could not resolve host) # after wpscan --url http://example.com
Defensive patterns
Strategy: retry
Validate before calling
# Pre-flight reachability check before invoking the scan
require 'typhoeus'
res = Typhoeus.get('http://example.com', followlocation: true, connecttimeout: 10)
abort "target unreachable: #{res.return_message}" if res.code.zero? Type guard
# Typhoeus code 0 is a transport-level failure, not an HTTP status transport_failure = res.is_a?(Typhoeus::Response) && res.code.zero?
Try / catch
begin
scan.run
rescue WPScan::Error::TargetDown => e
warn "#{e.response.request.url} unreachable: #{e.response.return_message}"
retry if (attempts += 1) < 3 && sleep(5)
raise
end Prevention
- Validate --url with curl from the same host/proxy before launching the scan
- Configure --connect-timeout and --request-timeout for slow or distant targets
- Verify --proxy reachability in CI environments
- Run scans from a network that can actually reach the target
When it happens
Trigger: Running `wpscan --url http://target` where DNS resolution fails, the TCP connection is refused/filtered, the TLS handshake fails, or the connection times out. Also produced when a --proxy is configured but unreachable, or when --url contains a typo (wrong hostname/TLD). The check is `res = WPScan::Browser.get(target.url); raise if res.code == 0`.
Common situations: Typo'd domain in --url; host firewall dropping the scanner's IP; corporate egress proxy required but not configured; IPv6-only target; decommissioned site; CI runner without network egress.
Related errors
- Unable to connect to the WPScan API: #{original_error}. Plea
- Unable to get #{response.effective_url} (status: #{response.
AI-assisted analysis of wpscanteam/wpscan@62c9cef471 (2026-08-21).
Data as JSON: /api/errors/dc1298a7ee2cd2a7.
Report an issue: GitHub.