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

  1. Add the dagster/max_runtime tag to your job definition in your Python code

  2. Enable run monitoring in your dagster.yaml configuration file:

    run_monitoring:
      enabled: true
  3. Restart 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