SnakeYAML API 2.0 and Pipeline Utility Steps Plugin Incompatibility

1 minute readKnowledge base

Issue

Controllers using the SnakeYAML API plugin >= 2.0 and the Pipeline Utility Steps plugin <= 2.15.3 are hitting an incompatibility error running jobs or starting up controllers with the following stack trace:

java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found at org.jenkinsci.plugins.pipeline.utility.steps.conf.ReadYamlStep$Execution.newYaml(ReadYamlStep.java:238) at org.jenkinsci.plugins.pipeline.utility.steps.conf.ReadYamlStep$Execution.doRun(ReadYamlStep.java:201) at org.jenkinsci.plugins.pipeline.utility.steps.AbstractFileOrTextStepExecution.run(AbstractFileOrTextStepExecution.java:29) at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)

Resolution

Update the Pipeline Utility Steps plugin to version 2.15.4 or greater.