Confluence fails to start with Year out of range warnings in the logs

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

Problem

Attempting to start Confluence fails and the following warning is printed multiple times in the atlassian-confluence.log:

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 40 41 42 43 44 45 46 47 2018-09-27 12:51:44,796 WARN [Caesium-1-3] [impl.schedule.caesium.SchedulerClusteredJobDaoProxyWrapper] updateNextRunTime Could not update next run time for clustered job 'ESIndexJournalVerifierJob' org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [UPDATE scheduler_clustered_jobs SET next_run_time = ?, version = ? WHERE job_id = ? AND version = ?]; SQL state [99999]; error code [17268]; Year out of range.; nested exception is java.sql.SQLException: Year out of range. at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:645) at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:866) at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:927) at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:937) at com.atlassian.confluence.impl.schedule.caesium.SchedulerClusteredJobDao.updateNextRunTime(SchedulerClusteredJobDao.java:153) at sun.reflect.GeneratedMethodAccessor365.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) at com.sun.proxy.$Proxy69.updateNextRunTime(Unknown Source) at com.atlassian.confluence.impl.schedule.caesium.SchedulerClusteredJobDaoProxyWrapper.updateNextRunTime(SchedulerClusteredJobDaoProxyWrapper.java:102) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJob(CaesiumSchedulerService.java:431) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJobWithRecoveryGuard(CaesiumSchedulerService.java:462) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:390) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:285) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:282) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:65) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:59) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:34) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: Year out of range. at oracle.jdbc.driver.DateCommonBinder.setOracleCYMD(OraclePreparedStatement.java:19511) at oracle.jdbc.driver.TimestampBinder.bind(OraclePreparedStatement.java:19788) at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:3243) at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2661) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3772) at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343) at oracle.jdbc.driver.OraclePreparedStatement.executeLargeUpdate(OraclePreparedStatement.java:3865) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3845) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1061) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:410) at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:873) at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:866) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629) ... 26 more

Cause

There is an incorrect Repeat Interval in the scheduled job settings. Following the example message above, the job that is causing the problem is Verify Elastic Search Index. Here are examples of correct and incorrect values:

Correct

999999999

NotCorrect

9999999999

Values over 9 characters can cause the ORA-17268 exception that is mentioned in the logs depending on the database configuration.

Resolution

To resolve the problem, the affected scheduled job must be identified by reviewing the log messages. On the example, the issue is related to ESIndexJournalVerifierJob, which can be found as Verify Elastic Search Index in the UI. Once the job is identified, run the following procedure to update the next execution time:

  1. Stop Confluence

  2. Backup the database

  3. Run the following query to confirm the incorrect value:

    1 select * from BANDANA where BANDANAKEY = 'DEFAULT#ESIndexJournalVerifierJob';

    Change the Job name accordingly if the log messages mentions a different scheduled job.

  4. Run the following query to remove one digit from the repeat interval:

    1 2 3 4 update bandana set bandanavalue = replace(bandanavalue, '<value class="long">9999999999000</value>', '<value class="long">999999999000</value>') where bandanakey = 'DEFAULT#ESIndexJournalVerifierJob';
  5. Commit the changes

  6. Start Confluence

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.