puppetlabs/puppet · error · ArgumentError

No matching arity found for #{func.class.name} with argument

Error message

No matching arity found for #{func.class.name} with arguments #{value.arguments}

What it means

Error "No matching arity found for #{func.class.name} with arguments #{value.arguments}" thrown in puppetlabs/puppet.

Source

Thrown at lib/puppet/pops/types/type_mismatch_describer.rb:589

      unless param_type.instance?(value)
        errors = describe(param_type, TypeCalculator.singleton.infer_set(value).generalize, [ParameterPathElement.new(param_name)])
        case errors.size
        when 0
          # do nothing
        when 1
          raise Puppet::ParseError, "#{subject}:#{errors[0].format}"
        else
          errors_str = errors.map(&:format).join("\n ")
          raise Puppet::ParseError, "#{subject}:\n #{errors_str}"
        end
      end
    end

    def get_deferred_function_return_type(value)
      func = Puppet.lookup(:loaders).private_environment_loader
                   .load(:function, value.name)
      dispatcher = func.class.dispatcher.find_matching_dispatcher(value.arguments)
      raise ArgumentError, "No matching arity found for #{func.class.name} with arguments #{value.arguments}" unless dispatcher

      dispatcher.type.return_type
    end
    private :get_deferred_function_return_type

    # Validates that all entries in the _param_hash_ exists in the given param_struct, that their type conforms
    # with the corresponding param_struct element and that all required values are provided.
    # An error message is created for each problem found.
    #
    # @param params_struct [PStructType] Struct to use for validation
    # @param param_hash [Hash<String,Object>] The parameters to validate
    # @param missing_ok [Boolean] Do not generate errors on missing parameters
    # @return [Array<Mismatch>] An array of found errors. An empty array indicates no errors.
    def describe_struct_signature(params_struct, param_hash, missing_ok = false)
      param_type_hash = params_struct.hashed_elements
      result = param_hash.each_key.reject { |name| param_type_hash.include?(name) }.map { |name| InvalidParameter.new(nil, name) }

      params_struct.elements.each do |elem|

View on GitHub (pinned to e227c27540)

When it happens

Trigger: Thrown at lib/puppet/pops/types/type_mismatch_describer.rb:589 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/d07b4f732ef4c3f2. Report an issue: GitHub.