puppetlabs/puppet · error · ArgumentError

Expected an Array, String, or Hash, got a %{klass}

Error message

Expected an Array, String, or Hash, got a %{klass}

What it means

Error "Expected an Array, String, or Hash, got a %{klass}" thrown in puppetlabs/puppet.

Source

Thrown at lib/puppet/settings/http_extra_headers_setting.rb:13

# frozen_string_literal: true

class Puppet::Settings::HttpExtraHeadersSetting < Puppet::Settings::BaseSetting
  def type
    :http_extra_headers
  end

  def munge(headers)
    return headers if headers.is_a?(Hash)

    headers = headers.split(/\s*,\s*/) if headers.is_a?(String)

    raise ArgumentError, _("Expected an Array, String, or Hash, got a %{klass}") % { klass: headers.class } unless headers.is_a?(Array)

    headers.map! { |header|
      case header
      when String
        header.split(':')
      when Array
        header
      else
        raise ArgumentError, _("Expected an Array or String, got a %{klass}") % { klass: header.class }
      end
    }
  end
end

View on GitHub (pinned to e227c27540)

When it happens

Trigger: Thrown at lib/puppet/settings/http_extra_headers_setting.rb:13 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of puppetlabs/puppet@e227c27540 (2026-08-21). Data as JSON: /api/errors/bb2629798ff502dd. Report an issue: GitHub.