DcdpTierTransferJob fails with IllegalArgumentException: Key can not be more than 100 characters in Atlassian Troubleshooting and Support Tools 2.20.1

XMLWordPrintable

    • Severity 3 - Minor

      Issue Summary

      After upgrading Confluence to version 9.2.21, the bundled Atlassian Troubleshooting and Support Tools (ATST) app (version 2.20.1) logs recurring errors every 15 minutes. The scheduled job troubleshooting.dcdp.job.DcdpTierTransferJob fails during the FREQUENT tier transfer because it attempts to save a plugin setting with a key exceeding the 100-character limit enforced by ConfluencePluginSettings.

      Steps to Reproduce

      1. Install or upgrade to Confluence 9.2.21
      2. Ensure the Atlassian Troubleshooting and Support Tools plugin version 2.20.1 is installed and enabled.
      3. Wait for the Caesium scheduler to trigger the DCDP data collection job (typically every 15 minutes).
      4. Monitor the atlassian-confluence.log.
      2026-06-09 11:22:35,455 ERROR [Caesium-1-4] [troubleshooting.dcdp.job.DcdpTierTransferJob] runJob Tier [FREQUENT] failed to collect diagnostics metrics.
       -- url: /confluence/setup/finishsetup.action | userName: anonymous | action: finishsetup | referer: https://linux-127065.prod.atl-cd.net/confluence/setup/setupadministrator-start.action | traceId: 3cf08e9fa0d56d16
      java.lang.IllegalArgumentException: Key can not be more than 100 characters
      	at org.apache.commons.lang3.Validate.isTrue(Validate.java:576)
      	at com.atlassian.sal.confluence.pluginsettings.ConfluencePluginSettings.put(ConfluencePluginSettings.java:46)
      	at com.atlassian.sal.confluence.pluginsettings.CachingPluginSettings.put(CachingPluginSettings.java:46)
      	at com.atlassian.sal.confluence.pluginsettings.TransactionalPluginSettings.lambda$put$1(TransactionalPluginSettings.java:29)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.lambda$doInTransaction$0(SpringHostContextAccessor.java:72)
      	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:70)
      	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
      	at jdk.proxy4/jdk.proxy4.$Proxy598.doInTransaction(Unknown Source)
      	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:134)
      	at jdk.proxy4/jdk.proxy4.$Proxy598.doInTransaction(Unknown Source)
      	at com.atlassian.sal.confluence.pluginsettings.TransactionalPluginSettings.put(TransactionalPluginSettings.java:29)
      	at com.atlassian.troubleshooting.dcdp.pluginsettings.DcdpPluginSettingsService.setMetricsLoggingCursor(DcdpPluginSettingsService.java:143)
      	at com.atlassian.troubleshooting.dcdp.transfer.DcdpDataSender.updateMetricsLoggingCursor(DcdpDataSender.java:199)
      	at com.atlassian.troubleshooting.dcdp.transfer.DcdpDataSender.collectAndLogDiagnosticsDataByTierTag(DcdpDataSender.java:133)
      	at com.atlassian.troubleshooting.dcdp.job.DcdpTierTransferJob.runJob(DcdpTierTransferJob.java:107)
      	at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.doRunJob(JobRunnerWrapper.java:121)
      	at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.runJob(JobRunnerWrapper.java:83)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$JobRunnerWithStats.runJob(CaesiumSchedulerService.java:787)
      	at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:145)
      	at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:117)
      	at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:99)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:578)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeLocalJobWithRetryOnFailure(CaesiumSchedulerService.java:533)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:461)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:66)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:60)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:35)
      	at java.base/java.lang.Thread.run(Thread.java:1583) 

       

      Expected Results

      The DcdpTierTransferJob should complete successfully without throwing exceptions, and diagnostic metrics should be collected.

      Actual Results

      The log is filled with the following error:

      2026-06-09 11:22:35,455 ERROR [Caesium-1-4] [troubleshooting.dcdp.job.DcdpTierTransferJob] runJob Tier [FREQUENT] failed to collect diagnostics metrics.
       -- url: /confluence/setup/finishsetup.action | userName: anonymous | action: finishsetup | referer: https://linux-127065.prod.atl-cd.net/confluence/setup/setupadministrator-start.action | traceId: 3cf08e9fa0d56d16
      java.lang.IllegalArgumentException: Key can not be more than 100 characters
      	at org.apache.commons.lang3.Validate.isTrue(Validate.java:576)
      	at com.atlassian.sal.confluence.pluginsettings.ConfluencePluginSettings.put(ConfluencePluginSettings.java:46)
      	at com.atlassian.sal.confluence.pluginsettings.CachingPluginSettings.put(CachingPluginSettings.java:46)
      	at com.atlassian.sal.confluence.pluginsettings.TransactionalPluginSettings.lambda$put$1(TransactionalPluginSettings.java:29)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.lambda$doInTransaction$0(SpringHostContextAccessor.java:72)
      	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:70)
      	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
      	at jdk.proxy4/jdk.proxy4.$Proxy598.doInTransaction(Unknown Source)
      	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:134)
      	at jdk.proxy4/jdk.proxy4.$Proxy598.doInTransaction(Unknown Source)
      	at com.atlassian.sal.confluence.pluginsettings.TransactionalPluginSettings.put(TransactionalPluginSettings.java:29)
      	at com.atlassian.troubleshooting.dcdp.pluginsettings.DcdpPluginSettingsService.setMetricsLoggingCursor(DcdpPluginSettingsService.java:143)
      	at com.atlassian.troubleshooting.dcdp.transfer.DcdpDataSender.updateMetricsLoggingCursor(DcdpDataSender.java:199)
      	at com.atlassian.troubleshooting.dcdp.transfer.DcdpDataSender.collectAndLogDiagnosticsDataByTierTag(DcdpDataSender.java:133)
      	at com.atlassian.troubleshooting.dcdp.job.DcdpTierTransferJob.runJob(DcdpTierTransferJob.java:107)
      	at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.doRunJob(JobRunnerWrapper.java:121)
      	at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.runJob(JobRunnerWrapper.java:83)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$JobRunnerWithStats.runJob(CaesiumSchedulerService.java:787)
      	at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:145)
      	at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:117)
      	at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:99)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:578)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeLocalJobWithRetryOnFailure(CaesiumSchedulerService.java:533)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:461)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:66)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:60)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:35)
      	at java.base/java.lang.Thread.run(Thread.java:1583) 

      Workaround

      To suppress the error messages:
      Via "Logging and Profiling"(temporary)

      1. Go to General Configuration → Logging and Profiling
      2. Add "com.atlassian.troubleshooting.dcdp" to the list via the text box under "Add New Entry"
      3. Set logging level to "FATAL"
      4. Click on "Add Entry"
      5. Click "Save" (bottom of the "Logging and Profiling" page)
      6. Refer Configuring Logging documentation for more details regarding logging configuration in Confluence

      Via "log4j.properties" file(permanent)

      1. Open up the /confluence/WEB-INF/classes/log4j.properties file
      2. Add the following line to the file:
        log4j.logger.com.atlassian.troubleshooting.dcdp=FATAL 
        

            3. Save the file
            4. Apply the same changes to the rest of the nodes
            5. Perform a rolling Confluence restart

      Affected versions of the ATST (Atlassian Troubleshooting & Support Tools) plugin are 2.20.1

      ATST version Status Notes
      2.20.1  Affected Bundled with Confluence 9.2.21

              Assignee:
              Krzysztof Dubanowicz
              Reporter:
              Naveen Ravi
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: