Zammad 7.1.3 Docker - SLA attached but escalation timestamps are never generated

Infos:

  • Used Zammad version: 7.1.3

  • Used Zammad installation type: docker-compose

  • Operating system: Debian 13

  • Browser + version: Chrome 152.x

Expected behavior:

  • Tickets matching an SLA should have escalation timestamps calculated.

  • A ticket with a First Response SLA of 120 minutes should have first_response_escalation_at populated.

  • SLA warnings/escalations should occur when the SLA deadline is reached.

Actual behavior:

  • SLAs are attached to tickets successfully.

  • first_response_diff_in_min is populated correctly.

  • first_response_escalation_at is always nil.

  • escalation_at is always nil.

  • update_escalation_at is always nil.

  • close_escalation_at is always nil.

  • Ticket.process_escalation runs but returns .

  • No tickets on the system have a populated first_response_escalation_at value.

Example ticket:


{

"first_response_at" => 2026-09-16 13:05:08 UTC,

"first_response_escalation_at" => nil,

"first_response_in_min" => 0,

"first_response_diff_in_min" => 120,

"escalation_at" => nil,

"update_escalation_at" => nil,

"close_escalation_at" => nil

}

SLA configuration:

{
  "id"=>1,
  "calendar_id"=>1,
  "name"=>"Standard Support",
  "first_response_time"=>120,
  "response_time"=>nil,
  "update_time"=>nil,
  "solution_time"=>nil,
  "condition"=>{
    "ticket.state_id"=>{
      "operator"=>"is",
      "value"=>["1"]
    }
  }
}

Calendar configuration:

Name: Business_Hours
Timezone: Europe/London

Mon-Fri
09:00-17:00

Ticket escalation metadata:

{
  "first_response_at"=>2026-09-16 13:05:08 UTC,
  "last_update_at"=>2026-09-16 13:05:08 UTC,
  "last_contact_at"=>2026-09-16 13:05:08 UTC,
  "sla_id"=>1,
  "calendar_id"=>1,
  "escalation_disabled"=>false
}

System-wide check:

Tickets with first_response_escalation_at:
0

21015 | nil
21014 | nil
21013 | nil
21012 | nil
21011 | nil
21010 | nil

Steps to reproduce the behavior:

  • Fresh Docker installation of Zammad 7.1.3.
  • Create a business-hours calendar (Mon-Fri 09:00-17:00 Europe/London).
  • Create an SLA with First Response Time = 120 minutes.
  • Configure SLA condition:
State = new
  • Create a new ticket.
  • Verify the ticket matches the SLA:
SLA ID = 1
  • Check the ticket fields.

Observed result:

first_response_diff_in_min = 120
first_response_escalation_at = nil
escalation_at = nil

Additional diagnostics already performed:

Ticket.process_escalation
=> []

Restarted all containers.

Tested with SLA values:
- 120 minutes
- 10 minutes

first_response_diff_in_min changes correctly, but escalation timestamps remain nil.

Question:

Am I missing a configuration step, or is this a bug in 7.1.3?

It appears that SLA matching, calendar assignment and SLA attachment work correctly, but no escalation timestamps are generated for any ticket.

Thanks for taking the time to look at this. I’ve included all diagnostics I’ve been able to gather so far, but I’m happy to run any additional checks if needed.

Regards,

Paul