# Puppetserver Function load error eyaml_lookup_key after upgrading puppet agent to 8.7.0+
## The problem
After upgrading puppet agent to 8.7.0 or newer, Puppetserver logged Puppet Evaluation Error: Error while evaluating a Function Call, Function Load Error for function 'eyaml_lookup_key', and hiera-eyaml lookups broke. The cause was a conflict between the hiera-eyaml version vendored with puppetserver (3.4.0) and an externally installed hiera-eyaml gem 4.1.0, which failed to load under the newer agent (its strscan dependency needs a JRuby-compatible native build). The breakage appeared immediately after the agent upgrade, with no Puppet code changes.
## The verified fix
Use puppetserver's vendored hiera-eyaml gem instead of the external 4.1.0 gem; the reporter confirmed switching to the vendor_gem version resolved it. Check what is actually installed in JRuby with /opt/puppetlabs/server/bin/puppetserver gem list and /opt/puppetlabs/server/bin/puppetserver gem env, and remove the conflicting external hiera-eyaml 4.1.0 (and any duplicate 3.4.0) so only the vendored copy loads. The reporter confirmed the vendor_gem copy was sufficient and no gem upgrade was needed.
Source: https://github.com/puppetlabs/puppet/issues/9475