Search code examples
jenkinsjenkins-pipelinejenkins-plugins

Exception when making any change to Jenkins multibranch pipeline configuration


Edit: This happens when making any change to the configuration through the Jenkins UI. Making changes to the configuration XML files directly works fine.

Adding a new branch to "Branch Sources" used to work as expected. Now I get the following exception when I add the branch and press Save. It appears to be some problem with folder icons--not directly related to what I'm attempting. Now sure where to go from here.

enter image description here

Caught unhandled exception with ID 408ae4bf-39cd-4d36-b90b-66265c44bb65
java.lang.ClassNotFoundException: ["com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon","jenkins.branch.MetadataActionFolderIcon"]
    at hudson.PluginManager$UberClassLoader.findClass(PluginManager.java:2173)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:681)
Caused: java.lang.IllegalArgumentException: Class ["com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon","jenkins.branch.MetadataActionFolderIcon"] is specified in JSON, but no such class found in classLoader hudson.PluginManager$UberClassLoader
    at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:686)
Caused: java.lang.IllegalArgumentException: Failed to instantiate class com.cloudbees.hudson.plugins.folder.FolderIcon from {"stapler-class":["com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon","jenkins.branch.MetadataActionFolderIcon"],"$class":["com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon","jenkins.branch.MetadataActionFolderIcon"]}
    at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:693)
    at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:490)
    at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:486)
    at com.cloudbees.hudson.plugins.folder.AbstractFolder.doConfigSubmit(AbstractFolder.java:1360)
    at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.doConfigSubmit(ComputedFolder.java:414)
    at java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source)
    at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:393)
    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:405)
    at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:77)
    at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:208)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:141)
    at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
Caused: javax.servlet.ServletException
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:816)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
    at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:281)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

...


Solution

  • I had a similar experience with my Jenkins instance on Jenkins 2.303.2. Solved this by going to Dashboard -> Manage Jenkins -> Manage Plugins and updating the Folders plugin to the newest version. After the plugin update the errors went away and I was able to save the multibranch pipeline options