theforeman/foreman · error · Net::Validations::Error

Invalid IP Address #{ip}

Error message

Invalid IP Address #{ip}

What it means

Error "Invalid IP Address #{ip}" thrown in theforeman/foreman.

Source

Thrown at app/lib/net/validations.rb:28

    DOMAIN_NAME_REGEXP ||= /\A(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\z/
    MASK_REGEXP ||= /\A((255.){3}(0|128|192|224|240|248|252|254))|((255.){2}(0|128|192|224|240|248|252|254).0)|(255.(0|128|192|224|240|248|252|254)(.0){2})|((128|192|224|240|248|252|254)(.0){3})\z/

    HOST_REGEXP_ERR_MSG = N_("hostname can contain only lowercase letters, numbers, dashes and dots according to RFC921, RFC952 and RFC1123")
    DOMAIN_NAME_FORMAT_ERR_MSG = N_("domain name can contain only letters, numbers, dashes and dots according to RFC 1035 and RFC 2181")

    class Error < RuntimeError
    end

    # validates an IPv4 address
    def self.validate_ip(ip)
      return false unless ip.present?
      IPAddr.new(ip, Socket::AF_INET) rescue return false
      true
    end

    # validates an IPv4 address and raises an error
    def self.validate_ip!(ip)
      raise Error, "Invalid IP Address #{ip}" unless validate_ip(ip)
      ip
    end

    # validates an IPv6 address
    def self.validate_ip6(ip)
      return false unless ip.present?
      IPAddr.new(ip, Socket::AF_INET6) rescue return false
      true
    end

    # validates an IPv6 address and raises an error
    def self.validate_ip6!(ip)
      raise Error, "Invalid IPv6 Address #{ip}" unless validate_ip6(ip)
      ip
    end

    # validates a network mask
    def self.validate_mask(mask)

View on GitHub (pinned to 6b05625475)

When it happens

Trigger: Thrown at app/lib/net/validations.rb:28 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of theforeman/foreman@6b05625475 (2026-08-23). Data as JSON: /api/errors/f2169e3af29d04db. Report an issue: GitHub.