Timeout

Last updated on June 16, 2026

You can prevent phases from running indefinitely by setting a timeout. Phases without a timeout run without a time limit, except operator input, which times out after 5 minutes by default.

main:
  - name: Run Long Test
    python: phases.tests
    timeout: 60s

You can use human-readable format with the following units: ms (milliseconds), s (seconds), m (minutes), h (hours), and combine them like 1h30m or 2m500ms.

TofuPilot terminates phases that exceed their timeout and logs a warning at 75% of the timeout duration, regardless of which runtime you use.

The Python worker process is terminated when a phase exceeds its timeout.

The executable worker process is terminated when a command exceeds its timeout.

The UI phase is terminated when it exceeds its timeout, even if waiting for operator input.

How is this guide?

On this page