{"record":{"id":"3945acc0cee49a42","repo":"puppetlabs/puppet","slug":"invalid-autosign-value-value-must-be-true-f","errorCode":null,"errorMessage":"Invalid autosign value %{value}: must be 'true'/'false' or an absolute path","messagePattern":"Invalid autosign value %(.+?): must be 'true'/'false' or an absolute path","errorType":"validation","errorClass":"Puppet::Settings::ValidationError","httpStatus":null,"severity":"error","filePath":"lib/puppet/settings/autosign_setting.rb","lineNumber":20,"sourceCode":"\nrequire_relative '../../puppet/settings/base_setting'\n\n# A specialization of the file setting to allow boolean values.\n#\n# The autosign value can be either a boolean or a file path, and if the setting\n# is a file path then it may have a owner/group/mode specified.\n#\n# @api private\nclass Puppet::Settings::AutosignSetting < Puppet::Settings::FileSetting\n  def munge(value)\n    if ['true', true].include? value\n      true\n    elsif ['false', false, nil].include? value\n      false\n    elsif Puppet::Util.absolute_path?(value)\n      value\n    else\n      raise Puppet::Settings::ValidationError, _(\"Invalid autosign value %{value}: must be 'true'/'false' or an absolute path\") % { value: value }\n    end\n  end\nend\n","sourceCodeStart":2,"sourceCodeEnd":24,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/settings/autosign_setting.rb#L2-L24","documentation":"Puppet::Settings::AutosignSetting#munge validates the `autosign` setting (certificate autosigning): true/'true' map to true, false/'false'/nil map to false, and any other value must satisfy Puppet::Util.absolute_path? (an absolute path to an autosign script or conf); everything else raises Puppet::Settings::ValidationError at config load.","triggerScenarios":"puppet.conf `autosign = yes` or `autosign = on`; a relative path like `autosign = autosign.conf`; empty-ish junk values; on Windows a non-drive-absolute path (must be like C:/path or \\\\server\\share, depending on absolute_path? support).","commonSituations":"Copying tutorials that use yes/no booleans; moving configs between Unix and Windows where path conventions differ; deploy tooling writing relative paths.","solutions":["Use the literal booleans true/false, or an absolute path such as /etc/puppetlabs/puppet/autosign.conf.","Fix relative paths to absolute ones (prefix $confdir's real value).","On Windows use a drive-absolute path form the OS accepts."],"exampleFix":"# before (puppet.conf [server])\nautosign = yes\n\n# after\nautosign = /etc/puppetlabs/puppet/autosign.conf\n# or simply:\nautosign = true","handlingStrategy":"validation","validationCode":"ok = [true, 'true'].include?(v) || [false, 'false', nil].include?(v) || Puppet::Util.absolute_path?(v)\nraise Puppet::Settings::ValidationError, \"autosign must be true/false or an absolute path (got #{v.inspect})\" unless ok","typeGuard":"valid_autosign = ->(v) { [true, 'true'].include?(v) || [false, 'false', nil].include?(v) || Puppet::Util.absolute_path?(v) }","tryCatchPattern":"begin\n  Puppet.settings[:autosign] = v\nrescue Puppet::Settings::ValidationError => e\n  raise unless e.message.include?('autosign')\n  Puppet.err(\"#{e.message} — use true/false or /abs/path/autosign.conf\")\n  raise\nend","preventionTips":["Write booleans as literal true/false in puppet.conf","Always use absolute paths for the autosign script/conf","Validate generated configs with `puppet config print autosign` before deployment"],"tags":["puppet","settings","autosign","ca","certificates","validation-error"],"backgroundTag":"invalid-config-value","analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}