-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Medium
-
None
-
Affects Version/s: 9.2.21
-
None
-
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
- Install or upgrade to Confluence 9.2.21
- Ensure the Atlassian Troubleshooting and Support Tools plugin version 2.20.1 is installed and enabled.
- Wait for the Caesium scheduler to trigger the DCDP data collection job (typically every 15 minutes).
- 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)
- Go to General Configuration → Logging and Profiling
- Add "com.atlassian.troubleshooting.dcdp" to the list via the text box under "Add New Entry"
- Set logging level to "FATAL"
- Click on "Add Entry"
- Click "Save" (bottom of the "Logging and Profiling" page)
- Refer Configuring Logging documentation for more details regarding logging configuration in Confluence
Via "log4j.properties" file(permanent)
- Open up the /confluence/WEB-INF/classes/log4j.properties file
- 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 | Bundled with Confluence 9.2.21 |