-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Low
-
None
-
Affects Version/s: 9.2.0, 10.1.1
-
Component/s: Server - Jobs
-
None
-
Severity 3 - Minor
Issue Summary
If the site is restored from an older version of Confluence to a newer version some scheduled jobs might not be registered. Also occasional exceptions might be logged for registered jobs about their parameters. This is also related to jobs not refreshing after the restore
Steps to Reproduce
- Create a new instance without a data set.
- Restore site with data set build with an older version of confuence.
Expected Results
The site should be restored correctly and any new scheduled jobs added in the current version of Confluence should be able to run and display in the scheduled job page for the admins
Actual Results
Some are not running, like Background Jobs Service
The below exception is thrown in the logs when a job is unable to deserialise the restored job:
2025-11-17 04:50:00,053 ERROR [Caesium-1-1] [scheduler.caesium.impl.CaesiumSchedulerService] executeClusteredJobWithRecoveryGuard Unhandled exception during the attempt to execute job 'batchingJobConfig'; will attempt recovery in 60 seconds com.atlassian.scheduler.SchedulerRuntimeException: The parameters cannot be accessed: java.io.StreamCorruptedException: invalid stream header: 636B3877 at com.atlassian.scheduler.core.status.UnusableJobDetails.getParameters(UnusableJobDetails.java:48) at com.atlassian.scheduler.core.status.LazyJobDetails.getParameters(LazyJobDetails.java:82) at com.atlassian.confluence.impl.schedule.caesium.ConfluenceSchedulerService.enqueueJob(ConfluenceSchedulerService.java:131) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJob(CaesiumSchedulerService.java:537) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJobWithRecoveryGuard(CaesiumSchedulerService.java:566) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:442) 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) Caused by: java.io.StreamCorruptedException: invalid stream header: 636B3877 at java.base/java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:989) at java.base/java.io.ObjectInputStream.<init>(ObjectInputStream.java:416) at com.atlassian.scheduler.core.util.ClassLoaderAwareObjectInputStream.<init>(ClassLoaderAwareObjectInputStream.java:25) at com.atlassian.confluence.impl.util.serialize.SecureClassLoaderAwareObjectInputStream.<init>(SecureClassLoaderAwareObjectInputStream.java:21) at com.atlassian.confluence.impl.schedule.caesium.SecureParameterMapSerializer.createObjectInputStream(SecureParameterMapSerializer.java:72) at com.atlassian.scheduler.core.util.ParameterMapSerializer.deserializeParameters(ParameterMapSerializer.java:73) at com.atlassian.scheduler.core.status.LazyJobDetails$1.create(LazyJobDetails.java:65) at com.atlassian.scheduler.core.status.LazyJobDetails$1.create(LazyJobDetails.java:54) at io.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:332) at io.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:150) at io.atlassian.util.concurrent.LazyReference.get(LazyReference.java:116) at com.atlassian.scheduler.core.status.LazyJobDetails.getDelegate(LazyJobDetails.java:103) ... 9 more
Workaround
Restart the instance so the jobs are registered correctly.