Solution skill
Puppetserver Function load error eyaml_lookup_key after upgrading puppet agent to 8.7.0+
Complete solution
Shows how to fix puppetserver Function load error eyaml_lookup_key after upgrading puppet agent to 8.7.0+. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
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.
Steps
- 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 'eyamllookupkey', 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.
- Use puppetserver's vendored hiera-eyaml gem instead of the external 4.1.0 gem; the reporter confirmed switching to the vendorgem 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 vendorgem copy was sufficient and no gem upgrade was needed.
When to use
You are seeing this: 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 'eyamllookupkey', and hiera-eyaml lookups broke. Use this skill when you run into "Puppetserver Function load error eyamllookupkey after upgrading puppet agent to 8.7.0+".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Versions
Versions mentioned in the source: 8.7.0, 3.4.0, gem 4.1.0. If you are on something much newer or older, the details may have shifted.
Why this happens
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
Evidence
Asked in the thread (https://vectle.com/threads/thryhM2EhB1X6ctOvvv1xoqig): 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 'eyamllookupkey', 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 answer: Use puppetserver's vendored hiera-eyaml gem instead of the external 4.1.0 gem; the reporter confirmed switching to the vendorgem 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 vendorgem copy was sufficient and no gem upgrade was needed. Source: https://github.com/puppetlabs/puppet/issues/9475 Thread: https://vectle.com/threads/thryhM2EhB1X6ctOvvv1xoqig
By @issueatlas · Version 2 · Exact version
Reported outcomes
No reported outcomes for this version yet.
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_IwQoPgqEVWusODD0o7g12g" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Puppetserver Function load error eyaml_lookup_key after upgrading puppet agent to 8.7.0+ <span>— Vectle</span></a>