{"record":{"id":"8c4a8bcf86eba6e5","repo":"puppetlabs/puppet","slug":"mac-os-x-pkg-dmgs-must-specify-a-package-name","errorCode":null,"errorMessage":"Mac OS X PKG DMGs must specify a package name.","messagePattern":"Mac OS X PKG DMGs must specify a package name\\.","errorType":"exception","errorClass":"Puppet::Error","httpStatus":null,"severity":"error","filePath":"lib/puppet/provider/package/pkgdmg.rb","lineNumber":154,"sourceCode":"\n  def query\n    if Puppet::FileSystem.exist?(\"/var/db/.puppet_pkgdmg_installed_#{@resource[:name]}\")\n      Puppet.debug \"/var/db/.puppet_pkgdmg_installed_#{@resource[:name]} found\"\n      { :name => @resource[:name], :ensure => :present }\n    else\n      nil\n    end\n  end\n\n  def install\n    source = @resource[:source]\n    unless source\n      raise Puppet::Error, _(\"Mac OS X PKG DMGs must specify a package source.\")\n    end\n\n    name = @resource[:name]\n    unless name\n      raise Puppet::Error, _(\"Mac OS X PKG DMGs must specify a package name.\")\n    end\n\n    self.class.installpkgdmg(source, name)\n  end\nend\n","sourceCodeStart":136,"sourceCodeEnd":160,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/provider/package/pkgdmg.rb#L136-L160","documentation":"Raised by `install` (lib/puppet/provider/package/pkgdmg.rb:154) when `@resource[:name]` is nil. In practice Puppet always populates a package resource's name from its title, so this guard is effectively unreachable from normal manifests; hitting it means the resource was constructed programmatically without a name.","triggerScenarios":"Code creating a package resource object without a title/name (custom Ruby types or direct provider instantiation), or a nil title coming out of generated catalogs.","commonSituations":"Programmatic catalog generation bugs; almost never seen in hand-written manifests.","solutions":["Ensure every `package` resource using pkgdmg has a real title/name.","Audit custom code that builds resources dynamically for nil names."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# Ensure programmatically built resources always carry a title\nfail('package resource requires a name') if $title =~ Undef","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never construct package resources without a title in Ruby/DSL code.","Lint generated catalogs for nil-titled resources."],"tags":["macos","pkgdmg","missing-attribute","name"],"backgroundTag":"missing-required-parameter","analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}