Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Crowd Upgrade fails with Error Not enabled: Crowd REST API

tarunsachdeva86
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
February 7, 2020

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?

1 answer

0 votes
LynnG
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
August 1, 2026
This looks less like a Java version problem and more like Crowd’s bundled plugin cache/classpath is in a bad state after the upgrade. The key line is the missing class:

:

Plain Text
1
java.lang.NoClassDefFoundError:
2
com/atlassian/plugins/rest/common/expand/entity/ListWrapper
Show more lines

That causes crowd-rest-plugin to fail, and because Crowd REST is a required plugin, Crowd refuses to start.

Most likely cause

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:

Plain Text
1
Required plugin is disabled: crowd-rest-plugin
2
NoClassDefFoundError:
3
com/atlassian/plugins/rest/common/expand/entity/ListWrapper
Show more lines

[community....assian.com]

Recommended fix

Follow Atlassian’s cache reset approach:

  1. Stop Crowd

  2. Back up your Crowd home directory

    Do not skip this.

  3. Delete these directories from Crowd home

    Shell
    1
    <crowd-home>/bundled-plugins
    2
    <crowd-home>/caches
    3
     
    Show more lines

    Atlassian’s KB specifically lists these folders as the ones to delete for corrupted plugin cache startup issues. [support.at...assian.com]

  4. Start Crowd again

Crowd should rebuild those plugin/cache directories on startup.

Java version check

Your Java version:

Plain Text
1
OpenJDK 1.8.0_212
Show more lines

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 the issue still happens

If clearing the plugin caches does not fix it, I would check for an incomplete or mixed upgrade installation:

  • Confirm you are starting from the Crowd 3.7.0 installation directory, not the old 3.2.3 install directory.
  • Confirm no old Crowd libraries were manually copied into the new install.
  • Confirm CROWD_HOME points to your existing Crowd home, but CROWD_INSTALL points to the new Crowd 3.7.0 install.
  • Check whether the REST-related bundled plugins exist in the new installation.

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]

Short answer

Try this first:

Shell
1
# Stop Crowd first
2
 
3
cd <crowd-home>
4
mv bundled-plugins bundled-plugins.bak
5
mv caches caches.bak
6
 
7
# Start Crowd
Show more lines

If Crowd starts successfully, you can later remove the .bak directories after confirming everything is working.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events