If two different plugins define the same symbol name in steps or parameters then the workflow cps plugin can't instantiate the right element.
JENKINS-55328 a user created a step
recordIssues tools: [checkStyle(), pmd(pattern: 'target/pmd.xml'), spotBugs(), cpd(pattern: 'target/cpd.xml')]
Since the user already installed the PMD plugin, the symbol pmd has been reserved for the step in the PMD plugin already. That means, rather then providing the pmd tool to my recordIssues step, it started the pmd step and set the corresponding array element to null.
The same happened in
JENKINS-53181. In the comments Jesse Glick noted that this behavior could not be changed (or is hard to change). It would help other plugin developers, if in such cases at least the workflow-cps engine could provide a meaningful exception (with the conflicting Jenkinsfile line) rather then assigning null to a parameter.