Removal time not set for timer start events and history-cleanup in the act_hi_job_log

We recently configured history cleanup and noticed that the removal time is not being populated on the job log (act_hi_job_log) for a couple cases:

  1. records that have job_def_type_ = ‘timer-start-event’ and job_def_configuration_ like ‘CYCLE: %’
  2. records that have job_def_type_ = ‘history-cleanup’

In both cases, the root_process_inst_id_ is also null.

The process with this cycle start events are either configured with the TTL defined explicitly like this:

<bpmn:process id="Process_1" name="Process 1" isExecutable="true" camunda:historyTimeToLive="P3D">

or depend on the engine default (see below).

The start gateway config varies but here’s the config for one of them that is never getting a removal time:

<bpmn:startEvent id="StartEvent_0t7ah95" name="Start every 30 seconds" camunda:asyncBefore="true" camunda:asyncAfter="true" camunda:exclusive="false">

Here’s the engine configuration we’re using related to cleanup:

    history-level: full
        historyTimeToLive: "P15D"
        batchOperationHistoryTimeToLive: "P15D"
        historyCleanupBatchWindowStartTime: "00:01"
        historyCleanupBatchWindowEndTime: "23:59"
        historyCleanupStrategy: removalTimeBased

We’re using camunda-bpm-spring-boot-starter 3.3.1 (7.11.0).

What am I missing in order to get the removal time set on those entries? Let me know if any other info is needed.


were you able to resolve this issue? I am facing similar issue too.
– I have updated process.xml with similar entries
historyCleanupBatchWindowStartTime: “20:00”
historyCleanupBatchWindowEndTime: “23:59”
historyCleanupStrategy: removalTimeBased

– added the history timetolive in each bpmn

but there are no cleanup job scheduled.(cockpit also says “No history cleanup scheduled”)

(Camunda 7.9.3 and oracle 11)

No, the original problem of the act_hi_job_log.removal_time_ not being set for certain jobs has not been resolved. We had to schedule a separate job in our database to set the act_hi_job_log.removal_time_ on those ourselves using this criteria:

where removal_time_ is null 
and root_proc_inst_id_ is null 
and job_duedate_ < sysdate - :offsetValue -- to control when the removal time is set