How to Configure Job Level Timeouts in Dagster
Last updated: November 3, 2025
Problem Description
Users need to configure job-level timeouts to prevent scheduled job invocations from running indefinitely or overlapping with subsequent scheduled runs. This is particularly important when using Dagster schedules for periodic jobs.
Symptoms
Jobs running longer than expected without automatic termination
Scheduled job invocations potentially overlapping with previous runs
Need to manually terminate long-running jobs
Root Cause
By default, Dagster jobs do not have automatic timeout mechanisms configured, which means they can run indefinitely unless explicitly terminated or configured with timeout settings.
Solution
Use the dagster/max_runtime tag on your job definition to set a timeout limit.
Step-by-Step Resolution
Add the
dagster/max_runtimetag to your job definition in your Python codeEnable run monitoring in your
dagster.yamlconfiguration file:run_monitoring: enabled: trueRestart your Dagster instance to apply the configuration changes
Alternative Solutions (if applicable)
You can also configure timeouts at the run level through the Dagster UI when manually launching runs, but the tag-based approach provides consistent timeout behavior for scheduled jobs.
Prevention
Always configure appropriate timeout values for scheduled jobs based on expected runtime. Monitor job execution times to set realistic timeout thresholds that allow normal completion while preventing runaway processes.
Related Documentation