v1.12.0: Maintenance mode
Maintenance mode brings the Server to a controlled stop, so the infrastructure underneath it can be changed without losing work in flight. Switch the message broker, migrate the database, restart for an upgrade — new work waits at a gate while what is already running finishes.
Full notes: 1.12.0 on GitHub.
The problem
A Job is not atomic: it has a task on a Runner, messages in the broker, and a saga mid-state in the database. Stopping the Server strands all three. Switching ServiceBus:BusType looks trivial — one configuration value — but whatever was queued on the old broker stays there, and a Job that was mid-flight neither fails nor finishes. The dashboard shows it running indefinitely. The same happens on a broker outage or a namespace recreated.
A gate, not a rejection
Opening a window queues new work rather than refusing it, and lets dispatched Jobs finish. The gate is selective: it blocks a user queuing a Job while still allowing a Runner to write logs, step results and state for the Job it is already executing.
Four phases
Draining holds new work while dispatched tasks play out. Ready for maintenance is where the disruptive change happens — nothing is executing and the bus is empty. Reconciling re-derives scheduled timers from the database. Resuming wakes parked Jobs and re-drives queued Modules.
Each phase names what is holding it back — the specific Jobs, Missions and queues — so a stalled drain is diagnosable rather than a guess.
Heartbeats, drift checks, approval timeouts and Mission deadlines are all scheduled through the transport. Reconciling rebuilds them from the database, which is what makes it safe to abandon the old broker's scheduled messages rather than transfer them.
Failsafes
Closing is refused where it would strand parked work. Two blunt instruments cover the rest: cancel all open Jobs, and cancel Missions whose Agent is no longer reachable — a Mission run keeps the connection id it was dispatched on, so cancellation checks for a live connection rather than trusting the stored one.
In the Dashboard
The Admin Center gains a Maintenance page: the phase timeline, plus live monitors for Jobs by resting state, unfinished Mission runs, and per-queue transport depths. The monitors poll, so a drain can be watched rather than refreshed. A banner warns on every organization page while a window is open.
Intelligent GitOps for Infrastructure as Code. Automate, orchestrate, and scale your infrastructure deployments with confidence.
© 2026 Snap CD. All rights reserved.