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

  1. Re-check the --url value for typos and confirm the site loads from the same machine (curl -I <url>)
  2. If --proxy is set, verify the proxy is reachable and can reach the target (curl -x <proxy> -I <url>)
  3. If the return_message mentions SSL/TLS, inspect the certificate or firewall rules on port 443
  4. Raise --connect-timeout / --request-timeout if the host is slow to answer
  5. 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

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


AI-assisted analysis of wpscanteam/wpscan@62c9cef471 (2026-08-21). Data as JSON: /api/errors/dc1298a7ee2cd2a7. Report an issue: GitHub.