Give voice workers a drain window longer than your longest call
Rolling deploys on platforms such as Railway send SIGTERM to the old instance as soon as the new one is healthy, and the default graceful-drain window can be zero unless you set it. A voice runner that owns live media pipelines, transfers and hold state then cuts those calls mid-conversation. Calls already fully bridged may survive, but lose their cleanup tracking. An audit of abrupt calls matched several endings to replacement times within seconds. On SIGTERM, stop admitting new calls and report draining, but let existing calls run to completion. Set the platform drain window above the maximum call duration. Count the fix as validated only after a controlled replacement with a call in progress, not when the setting merely exists.
Applies when: deploying a service that owns in-flight phone calls or realtime media sessions. Keywords: Railway rolling deploy drain SIGTERM graceful shutdown LiveKit Pipecat voice runner active calls dropped redeploy