{"record":{"id":"b8fed6621993cb81","repo":"puppetlabs/puppet","slug":"auth-names-must-be-provided-as-an-array-not-a-com","errorCode":null,"errorMessage":"Auth names must be provided as an array, not a comma-separated list","messagePattern":"Auth names must be provided as an array, not a comma-separated list","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/puppet/type/user.rb","lineNumber":568,"sourceCode":"\n      newvalues(:inclusive, :minimum)\n\n      defaultto :minimum\n    end\n\n    newproperty(:auths, :parent => Puppet::Property::List, :required_features => :manages_solaris_rbac) do\n      desc \"The auths the user has.  Multiple auths should be\n        specified as an array.\"\n\n      def membership\n        :auth_membership\n      end\n\n      validate do |value|\n        if value =~ /^\\d+$/\n          raise ArgumentError, _(\"Auth names must be provided, not numbers\")\n        end\n        raise ArgumentError, _(\"Auth names must be provided as an array, not a comma-separated list\") if value.include?(\",\")\n      end\n    end\n\n    newparam(:auth_membership) do\n      desc \"Whether specified auths should be considered the **complete list**\n        (`inclusive`) or the **minimum list** (`minimum`) of auths the user\n        has. This setting is specific to managing Solaris authorizations.\"\n\n      newvalues(:inclusive, :minimum)\n\n      defaultto :minimum\n    end\n\n    newproperty(:profiles, :parent => Puppet::Property::OrderedList, :required_features => :manages_solaris_rbac) do\n      desc \"The profiles the user has.  Multiple profiles should be\n        specified as an array.\"\n\n      def membership","sourceCodeStart":550,"sourceCodeEnd":586,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/type/user.rb#L550-L586","documentation":"Raised by the validate block of the `auths` property on the `user` type when a member string contains a comma. The property is a Puppet::Property::List and requires an array of Solaris authorization names; a comma-joined string would otherwise be interpreted as a single bogus authorization name, so it is rejected up front.","triggerScenarios":"`user { 'alice': auths => 'solaris.admin.usermgr,solaris.system.admin' }` on Solaris; joined-array data from Hiera or an ENC; converting `usermod -A auth1,auth2` command lines.","commonSituations":"Shell-script-to-manifest ports where -A takes a comma list; YAML authored as scalar instead of list; tooling that flattens arrays to strings.","solutions":["Pass an array: `auths => ['solaris.admin.usermgr', 'solaris.system.admin']`","Fix Hiera data to be a YAML list","Split strings in the profile before use: `auths => $raw.split(',')`"],"exampleFix":"# before\nuser { 'alice':\n  ensure => present,\n  auths  => 'solaris.admin.usermgr,solaris.system.admin',\n}\n\n# after\nuser { 'alice':\n  ensure => present,\n  auths  => ['solaris.admin.usermgr', 'solaris.system.admin'],\n}","handlingStrategy":"validation","validationCode":"auths = raw.is_a?(String) ? raw.split(',').map(&:strip).reject(&:empty?) : Array(raw)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Store Solaris auth lists as YAML sequences","Normalize comma scalars at the profile parameter boundary","Review ENC-generated data for flattened lists"],"tags":["puppet","user-resource","solaris-rbac","authorizations","list-validation"],"backgroundTag":"string-list-instead-of-array","analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}