Upgrade Fails Due to Modified Repository Key in atlassian-user.xml

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Symptoms

Confluence upgrade fails if the repository key in atlassian-user.xml is of non-default value. For example, this has non-default key:

1 2 3 <ldap key="AD" name="LDAP Repository@hecate.atlassian.com" cache="true"> ... </ldap>

A default key would have:

1 2 3 <ldap key="ldapRepository" name="LDAP Repository@hecate.atlassian.com" cache="true"> ... </ldap>

Upgrade fails with the following stack trace in atlassian-confluence.log:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 2011-06-17 23:19:32,324 ERROR [main] [atlassian.confluence.upgrade.UpgradeLauncherServletContextListener] contextInitialized Upgrade failed, application will not start: com.atlassian.confluence.user.migration.AtlassianUserMigrationException: no matching migrator found for [ com.atlassian.user.configuration.DefaultRepositoryConfiguration@14baaea8 ] com.atlassian.confluence.upgrade.UpgradeException: com.atlassian.confluence.user.migration.AtlassianUserMigrationException: no matching migrator found for [ com.atlassian.user.configuration.DefaultRepositoryConfiguration@14baaea8 ] at com.atlassian.confluence.upgrade.AbstractUpgradeManager.upgrade(AbstractUpgradeManager.java:81) at com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager.upgrade(DefaultUpgradeManager.java:139) at com.atlassian.confluence.upgrade.UpgradeLauncherServletContextListener.contextInitialized(UpgradeLauncherServletContextListener.java:28) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: com.atlassian.confluence.user.migration.AtlassianUserMigrationException: no matching migrator found for [ com.atlassian.user.configuration.DefaultRepositoryConfiguration@14baaea8 ] at com.atlassian.confluence.user.migration.AtlassianUserMigratorFactory.getMigrator(AtlassianUserMigratorFactory.java:31) at com.atlassian.confluence.upgrade.upgradetask.AtlassianUserToEmbeddedCrowdConfigurationUpgradeTask.validate(AtlassianUserToEmbeddedCrowdConfigurationUpgradeTask.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy33.validate(Unknown Source) at com.atlassian.confluence.upgrade.AbstractUpgradeManager.validate(AbstractUpgradeManager.java:145) at com.atlassian.confluence.upgrade.AbstractUpgradeManager.upgrade(AbstractUpgradeManager.java:68) ... 17 more

Cause

Confluence uses the repository key in Confluence cache configuration file (ehcache.xml for standalone edition, confluence-coherence-cache-config-clustered.xml or confluence-coherence-cache-config.xml for clustered edition) to identify the repository type. Confluence uses this key to choose the correct user migration path during upgrade.

Note: From Confluence 5.6 the cache configuration files are confluence-home>/shared-home/config/cache-settings-overrides.properties for Confluence Server (standalone) or <confluence-shared-home>/config/cache-settings-overrides.properties for Confluence Data Center (clustered).

Resolution

Revert your repository key to default value.

Alternatively, ensure that the customised Confluence cache configuration file exists in the target <confluence-home>/config/ directory.

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.