puppetlabs/puppet · error · Puppet::Error

Forcelocal set for user resource '#{resource[:name]}', but #

Error message

Forcelocal set for user resource '#{resource[:name]}', but #{passwd_file} does not exist

What it means

Error "Forcelocal set for user resource '#{resource[:name]}', but #{passwd_file} does not exist" thrown in puppetlabs/puppet.

Source

Thrown at lib/puppet/provider/user/useradd.rb:105

  def home
    return localhome if @resource.forcelocal?

    get(:home)
  end

  def groups
    return localgroups if @resource.forcelocal?

    super
  end

  def finduser(key, value)
    passwd_file = '/etc/passwd'
    passwd_keys = [:account, :password, :uid, :gid, :gecos, :directory, :shell]

    unless @users
      unless Puppet::FileSystem.exist?(passwd_file)
        raise Puppet::Error, "Forcelocal set for user resource '#{resource[:name]}', but #{passwd_file} does not exist"
      end

      @users = []
      Puppet::FileSystem.each_line(passwd_file) do |line|
        user = line.chomp.split(':')
        @users << passwd_keys.zip(user).to_h
      end
    end
    @users.find { |param| param[key] == value } || false
  end

  def local_username
    finduser(:uid, @resource.uid)
  end

  def localuid
    user = finduser(:account, resource[:name])
    return user[:uid] if user

View on GitHub (pinned to e227c27540)

When it happens

Trigger: Thrown at lib/puppet/provider/user/useradd.rb:105 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/6833fe3c1c0d0e60. Report an issue: GitHub.