{"record":{"id":"99bc59dce9953e73","repo":"puppetlabs/puppet","slug":"only-fmt-keys-map-k-k-join-a","errorCode":null,"errorMessage":"only #{FMT_KEYS.map { |k| \"'#{k}'\" }.join(', ')} are allowed in a container format, got #{fmt}","messagePattern":"only #(.+?)'\" \\}\\.join\\(', '\\)\\} are allowed in a container format, got #(.+?)","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/puppet/pops/types/string_converter.rb","lineNumber":561,"sourceCode":"      key, value = entry\n      unless key.is_a?(Types::PAnyType)\n        raise ArgumentError, \"top level keys in the format hash must be data types, got instance of '#{key.class}'\"\n      end\n\n      if value.is_a?(Hash)\n        result[key] = validate_container_input(value)\n      else\n        result[key] = Format.new(value)\n      end\n    end\n  end\n  private :validate_input\n\n  FMT_KEYS = %w[separator separator2 format string_formats].freeze\n\n  def validate_container_input(fmt)\n    if (fmt.keys - FMT_KEYS).size > 0\n      raise ArgumentError, \"only #{FMT_KEYS.map { |k| \"'#{k}'\" }.join(', ')} are allowed in a container format, got #{fmt}\"\n    end\n\n    result                          = Format.new(fmt['format'])\n    result.separator                = fmt['separator']\n    result.separator2               = fmt['separator2']\n    result.container_string_formats = validate_input(fmt['string_formats'])\n    result\n  end\n  private :validate_container_input\n\n  def string_PObjectType(val_type, val, format_map, indentation)\n    f = get_format(val_type, format_map)\n    case f.format\n    when :p\n      fmt = TypeFormatter.singleton\n      indentation = indentation.indenting(f.alt? || indentation.is_indenting?)\n      fmt = fmt.indented(indentation.level, 2) if indentation.is_indenting?\n      fmt.string(val)","sourceCodeStart":543,"sourceCodeEnd":579,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/pops/types/string_converter.rb#L543-L579","documentation":"Error \"only #{FMT_KEYS.map { |k| \"'#{k}'\" }.join(', ')} are allowed in a container format, got #{fmt}\" thrown in puppetlabs/puppet.","triggerScenarios":"Thrown at lib/puppet/pops/types/string_converter.rb:561 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}