Tool step stopped working because of NullPointerException

1 minute readKnowledge base

Issue

The pipeline, which uses the tool step, started failing with the following error.

Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: a2e78a6d-6375-49dd-9ee3-c5a3e3d0520f java.lang.NullPointerException at org.jenkinsci.plugins.workflow.steps.ToolStep$Execution.run(ToolStep.java:155) at org.jenkinsci.plugins.workflow.steps.ToolStep$Execution.run(ToolStep.java:138) 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

Tool installations require the name to be used by the tool step and other features. However, submitting the Tools page without providing all the names is possible. Before version 1049.v257a_e6b_30fb_d of "Pipeline: Basic Steps plugin", such misconfiguration can cause tool step to fail NullPointerException. Leaving the name empty for tools provided by the following two plugins is most likely to cause this issue: SonarQube Scanner and Allure.

Updating the "Pipeline: Basic Steps" plugin to 1049.v257a_e6b_30fb_d or newer will prevent NullPointerException, however, the root cause is the unusable tool installations missing the names. Hence, the solution is ensuring every installation on the Tools page has a name.

Tested product/plugin versions

This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.