Builds fail to run on agents due to "no converter available"

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

Build plans fail to run and the following error can be seen in the <bamboo-agent-home>/atlassian-bamboo-agent.log file

atlassian-bamboo-agent.log

1 com.thoughtworks.xstream.converters.ConversionException: No converter available

Environment

The solution has been validated in Bamboo 9.6 and 9.4 but may be applicable to other versions.

This can also be seen when upgrading to Java 11 or Java 17.

Diagnosis

Build plans are unable to run and trigger the following error in the <bamboo-agent-home>/atlassian-bamboo-agent.log file:

atlassian-bamboo-agent.log

1 2 3 4 5 6 7 8 9 10 11 12 WARN [remoteEventRebroadcasterMessageListenerContainer-1] [AbstractMessageListenerContainer] Execution of JMS message listener failed, and no ErrorHandler has been set. com.thoughtworks.xstream.converters.ConversionException: No converter available ---- Debugging information ---- message : No converter available type : com.atlassian.bamboo.event.ServerFingerprintBroadcastEventV2 converter : com.atlassian.bamboo.serialization.xstream.StrippingConverter message[1] : Could not initialize class net.sf.cglib.proxy.Enhancer converter[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter message[2] : Unable to make field private static final long java.util.EventObject.serialVersionUID accessible: module java.base does not "opens java.util" to unnamed module @4eb6d1d0 version : not available ------------------------------- at com.thoughtworks.xstream.core.DefaultConverterLookup.lookupConverterForType(DefaultConverterLookup.java:88) ~[xstream-1.4.20.jar:1.4.20]

The following errors can also be present in the <bamboo-agent-home>/logs/atlassian-bamboo.log file:

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 38 39 INFO | jvm 1 | 2024/07/05 21:17:05 | 2024-07-05 21:17:05,483 ERROR [0-BAM::worker6-1.bar.iec.it.ubc.ca::Agent:pool-4-thread-1] [BuildAgentControllerImpl] Unknown error occurred on 'AHENT' when building Deployment of 'RELEASE' on 'ENVIRONMENT'. Agent will attempt process the build result... INFO | jvm 1 | 2024/07/05 21:17:05 | com.google.common.util.concurrent.UncheckedExecutionException: io.atlassian.util.concurrent.LazyReference$InitializationException: com.thoughtworks.xstream.converters.ConversionException: com.thoughtworks.xstream.converters.enums.EnumSetConverter INFO | jvm 1 | 2024/07/05 21:17:05 | ---- Debugging information ---- INFO | jvm 1 | 2024/07/05 21:17:05 | message : No converter available INFO | jvm 1 | 2024/07/05 21:17:05 | type : java.util.EnumSet INFO | jvm 1 | 2024/07/05 21:17:05 | converter : com.atlassian.bamboo.serialization.xstream.StrippingConverter INFO | jvm 1 | 2024/07/05 21:17:05 | message[1] : Could not initialize class net.sf.cglib.proxy.Enhancer INFO | jvm 1 | 2024/07/05 21:17:05 | converter[1] : com.thoughtworks.xstream.converters.enums.EnumSetConverter INFO | jvm 1 | 2024/07/05 21:17:05 | message[2] : Could not initialize class com.thoughtworks.xstream.converters.enums.EnumSetConverter$Reflections INFO | jvm 1 | 2024/07/05 21:17:05 | converter[2] : com.thoughtworks.xstream.converters.reflection.SerializableConverter INFO | jvm 1 | 2024/07/05 21:17:05 | message[3] : Unable to make private void java.util.EnumSet.readObject(java.io.ObjectInputStream) throws java.io.InvalidObjectException accessible: module java.base does not "opens java.util" to unnamed module @7d4b5b0a INFO | jvm 1 | 2024/07/05 21:17:05 | converter[3] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter INFO | jvm 1 | 2024/07/05 21:17:05 | message[4] : Unable to make field private static final long java.util.EnumSet.serialVersionUID accessible: module java.base does not "opens java.util" to unnamed module @7d4b5b0a INFO | jvm 1 | 2024/07/05 21:17:05 | class : com.atlassian.bamboo.deployments.expiry.DeploymentExpiryConfig INFO | jvm 1 | 2024/07/05 21:17:05 | required-type : com.atlassian.bamboo.deployments.expiry.DeploymentExpiryConfig INFO | jvm 1 | 2024/07/05 21:17:05 | converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter INFO | jvm 1 | 2024/07/05 21:17:05 | path : /org.springframework.remoting.support.RemoteInvocationResult/value/deploymentExpiryConfig/expiryTypes INFO | jvm 1 | 2024/07/05 21:17:05 | line number : 23 INFO | jvm 1 | 2024/07/05 21:17:05 | class[1] : com.atlassian.bamboo.configuration.AdministrationConfigurationImpl INFO | jvm 1 | 2024/07/05 21:17:05 | required-type[1] : com.atlassian.bamboo.configuration.AdministrationConfigurationImpl INFO | jvm 1 | 2024/07/05 21:17:05 | class[2] : org.springframework.remoting.support.RemoteInvocationResult INFO | jvm 1 | 2024/07/05 21:17:05 | required-type[2] : org.springframework.remoting.support.RemoteInvocationResult INFO | jvm 1 | 2024/07/05 21:17:05 | version : not available INFO | jvm 1 | 2024/07/05 21:17:05 | ------------------------------- INFO | jvm 1 | 2024/07/05 21:17:05 | at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2086) ~[guava-32.1.2-jre.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.google.common.cache.LocalCache.get(LocalCache.java:4012) ~[guava-32.1.2-jre.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4035) ~[guava-32.1.2-jre.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5013) ~[guava-32.1.2-jre.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5020) ~[guava-32.1.2-jre.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.atlassian.bamboo.v2.build.agent.remote.RemoteBuildLoggerManager.getLogger(RemoteBuildLoggerManager.java:119) ~[atlassian-bamboo-agent-remote-9.2.13.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.atlassian.bamboo.v2.build.agent.remote.RemoteBuildLoggerManager.getLogger(RemoteBuildLoggerManager.java:103) ~[atlassian-bamboo-agent-remote-9.2.13.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.atlassian.bamboo.v2.build.agent.BuildAgentControllerImpl.waitAndPerformBuild(BuildAgentControllerImpl.java:151) ~[atlassian-bamboo-agent-core-9.2.13.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.atlassian.bamboo.v2.build.agent.DefaultBuildAgent.lambda$start$0(DefaultBuildAgent.java:124) ~[atlassian-bamboo-agent-core-9.2.13.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48) ~[atlassian-bamboo-api-9.2.13.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26) ~[atlassian-bamboo-api-9.2.13.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17) ~[atlassian-bamboo-api-9.2.13.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41) ~[atlassian-bamboo-api-9.2.13.jar:?] INFO | jvm 1 | 2024/07/05 21:17:05 | at java.lang.Thread.run(Thread.java:840) ~[?:?] INFO | jvm 1 | 2024/07/05 21:17:05 | Caused by: io.atlassian.util.concurrent.LazyReference$InitializationException: com.thoughtworks.xstream.converters.ConversionException: No converter available

Cause

Performance enhancements have been observed across Java versions 8, 11, and 17, although some classes now require additional parameters to function optimally. If the agent is not upgraded or manually updated as per the Bamboo remote agent installation guide, the properties outlined in the Solution section within the wrapper.conf file of the agent operating on Java 11 or Java 17 will not be updated and will result in the build plan being unable to execute. This will trigger the error detailed in the Diagnosis section.

The "Cannot invoke "Object.toString()" because the return value of "java.util.Map$Entry.getValue()" is null" has also been observed due to version mismatches between the agent and Bamboo, and on scenarios of Operating System upgrades.

Solution

The solution consists of ensuring that agents running on Java 11 or Java 17 can perform the necessary conversions effectively. This can be achieved in two ways:

Reinstall the agent

When upgrading Bamboo from versions 8.0–9.3 to version 9.4 or later it's recommended to download a new remote agent JAR from your upgraded Bamboo and reinstall the wrapper:

Workaround

A workaround to solve this error is to update the wrapper configuration manually through the steps below:

  1. Stop the original agent.

  2. Open the wrapper configuration file<BAMBOO_AGENT_HOME>/conf/wrapper.conf.

  3. In the wrapper.conf file, replace the values for the following properties (or add them if they are not there):

    1 2 3 4 5 6 7 wrapper.java.version.min=11 wrapper.java.version.max=17 wrapper.java.version.fallback=11 wrapper.java.additional.4=--add-opens=java.base/java.util=ALL-UNNAMED wrapper.java.additional.5=--add-opens=java.base/java.lang=ALL-UNNAMED wrapper.java.additional.6=--add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED wrapper.java.additional.7=--add-opens=java.base/sun.net.www.protocol.https=ALL-UNNAMED

    Please ensure that you use a sequential number as per your wrapper.java.additional properties.

  4. Start the agent.

Updated on March 24, 2025

Still need help?

The Atlassian Community is here for you.