Your shared Bamboo configuration version is too old comparing to local node Bamboo version

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

Summary

When upgrading Bamboo to version 8.0 or higher, the application will not start.

Environment

Upgrading Bamboo to version 8.0+.

Diagnosis

The following error message can be seen in the logs (atlassian-bamboo.log) right after Bamboo is started.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2021-09-17 15:41:25,515 INFO [localhost-startStop-1] [lifecycle] * Bamboo is starting up * 2021-09-17 15:41:25,515 INFO [localhost-startStop-1] [lifecycle] ******************************* [...] 2021-09-17 15:41:26,858 ERROR [localhost-startStop-1] [DefaultAtlassianBootstrapManager] Home is not configured properly: com.atlassian.config.ConfigurationException: Your shared Bamboo configuration (/bamboo-home/xml-data/configuration) version (60805) is too old comparing to local node Bamboo version (70212). Shared home Bamboo version expected to be equal or greater than local Bamboo node version. at com.atlassian.bamboo.setup.DefaultBootstrapManager.afterConfigurationLoaded(DefaultBootstrapManager.java:132) at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:75) at com.atlassian.bamboo.setup.BootstrapLoaderListener.contextInitialized(BootstrapLoaderListener.java:155) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4705) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5171) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 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) 2021-09-17 15:41:26,860 INFO [localhost-startStop-1] [lifecycle] Bamboo home directory: /bamboo-home 2021-09-17 15:41:26,860 INFO [localhost-startStop-1] [lifecycle] Default charset: UTF-8, file name ecoding: UTF-8 2021-09-17 15:41:26,869 INFO [localhost-startStop-1] [UpgradeLauncher] Upgrades not performed since the application has not been set up yet.

In the UI, you'll see a long error related to FreeMarker templates. This error is thrown because Bamboo couldn't startup properly due to the error above.

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 io.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointerException at io.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:156) at io.atlassian.util.concurrent.LazyReference.get(LazyReference.java:116) at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.renderNoCache(BambooFreemarkerManagerSoyHelpers.java:98) at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.render(BambooFreemarkerManagerSoyHelpers.java:88) at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.render(BambooFreemarkerManagerSoyHelpers.java:80) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1459) at freemarker.ext.beans.ReflectionCallableMemberDescriptor.invokeMethod(ReflectionCallableMemberDescriptor.java:56) at freemarker.ext.beans.MemberAndArguments.invokeMethod(MemberAndArguments.java:51) at freemarker.ext.beans.OverloadedMethodsModel.exec(OverloadedMethodsModel.java:63) at freemarker.core.MethodCall._eval(MethodCall.java:76) at freemarker.core.Expression.eval(Expression.java:81) [...] Caused by: java.lang.NullPointerException at com.atlassian.bamboo.ww2.BambooFreemarkerManager$1.get(BambooFreemarkerManager.java:127) at com.atlassian.bamboo.ww2.BambooFreemarkerManager$1.get(BambooFreemarkerManager.java:124) at io.atlassian.util.concurrent.Lazy$Strong.create(Lazy.java:98) at io.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:332) at io.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:150) ... 112 more

Cause

Starting Bamboo 8, a new file was introduced to the home folder, called bamboo-shared.cfg.xml. It contains the application's build number. Example:

1 2 3 4 5 <?xml version="1.0" encoding="UTF-8"?><application-configuration> <properties> <property name="build-number">80009</property> </properties> </application-configuration>

One of the upgrade tasks checks if the new local home is using an older shared home. If, for any reason, that file gets corrupted and shows an older build number than your current one, the upgrade will fail.

E.g., if your current version is 7.2.5 (build 70212), but the file refers to the build number as 60805 (Bamboo 6.8.1), once you try to upgrade to Bamboo 8.0+, it will not match the above criteria and the upgrade will fail.

Solution

Simply update the file and replace the build number with the new one (which you can get from the error in the logs).

  1. Stop Bamboo.

  2. Make a backup and then edit the <bamboo-home>/xml-data/configuration/bamboo-shared.cfg.xml file, changing the build number to the one pointed out by the error message, at the following property:

    1 <property name="build-number">80009</property>
  3. The file should then look like this:

    1 2 3 4 5 6 <?xml version="1.0" encoding="UTF-8"?> <application-configuration> <properties> <property name="build-number">80009</property> </properties> </application-configuration>
  4. Delete everything inside the following folders (but not the folders themselves):

    1 2 3 4 <bamboo-home>/caches/ <bamboo-home>/temp/ <bamboo-home>/index/ <bamboo-home>/jms-store/
  5. Start Bamboo.

That's it!

Updated on March 12, 2025

Still need help?

The Atlassian Community is here for you.