Error Description: Required plugins failed to initialise. Please check the logs for errors and restart Crowd
Exception: Not enabled: Crowd REST API
Upgrading Crowd from v3.2.3 to v3.7.0.
Error in atlassian-crowd.log:
INFO [atlassian.plugin.manager.PluginEnabler] Plugin 'crowd-rest-plugin' is now DISABLED
ERROR [atlassian.crowd.plugin.RequiredPluginsStartupCheck] Required plugin is disabled: crowd-rest-plugin
java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
Details from logs:
ERROR [internal.dependencies.startup.DependencyWaiterApplicationContextExecutor] Unable to create application context for [com.atlassian.crowd.rest-plugin], unsatisfied dependencies: none
java.lang.NoClassDefFoundError: com/atlassian/plugins/rest/common/expand/entity/ListWrapper
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2401)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:859)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:609)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:521)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:507)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:241)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1069)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1042)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:60)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:325)
at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:290)
at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.atlassian.plugins.rest.common.expand.entity.ListWrapper
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1364)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
... 36 more
Any suggestions?
:
That causes crowd-rest-plugin to fail, and because Crowd REST is a required plugin, Crowd refuses to start.
Atlassian has a Crowd KB for a very similar startup failure where crowd-rest-plugin is disabled and Crowd cannot start. Their documented cause is corrupted plugin caches, often after an improper or forced shutdown, and their documented fix is to delete Crowd’s plugin cache directories after backing up the home directory. [support.at...assian.com]
Your log also matches a known Atlassian Community report for an upgrade from Crowd 3.2.3 to 3.7.0 with the same error:
Follow Atlassian’s cache reset approach:
Stop Crowd
Back up your Crowd home directory
Do not skip this.
Delete these directories from Crowd home
Atlassian’s KB specifically lists these folders as the ones to delete for corrupted plugin cache startup issues. [support.at...assian.com]
Start Crowd again
Crowd should rebuild those plugin/cache directories on startup.
Your Java version:
is not the first thing I would suspect here. Crowd 3.7 supports OpenJDK Java 8 and Oracle Java 8, according to Atlassian’s supported platforms page for Crowd 3.7. [confluence...assian.com]
If clearing the plugin caches does not fix it, I would check for an incomplete or mixed upgrade installation:
CROWD_HOME points to your existing Crowd home, but CROWD_INSTALL points to the new Crowd 3.7.0 install.Crowd 3.7 includes REST APIs such as usermanagement and admin, so the REST plugin is expected to be available and enabled after a healthy startup. [docs.atlassian.com]
Try this first:
If Crowd starts successfully, you can later remove the .bak directories after confirming everything is working.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.