Pipeline Timeouts

Pipeline runs that exceed their configured execution limit are stopped so the worker pool is not held by unexpectedly long computations. Authenticated users receive a longer limit than anonymous users.


How it works

When a pipeline run is submitted, the server computes a static Celery soft time limit and attaches it to the pipeline task. If execution is still running when the soft limit is reached, Celery raises a timeout exception in the worker and the run is marked as timed out.

The pipeline task also receives a hard time limit. This is calculated as:

soft limit + PIPELINE_TIMEOUT_HARD_MARGIN

The hard limit is a backstop that kills the worker process if the soft timeout cannot stop execution cleanly.


Configuration

Timeouts are configured through environment variables read by the Celery worker.

PIPELINE_TIMEOUT_ANON=3600
PIPELINE_TIMEOUT_AUTHENTICATED_MULTIPLIER=2.0
PIPELINE_TIMEOUT_HARD_MARGIN=300

Anonymous users receive PIPELINE_TIMEOUT_ANON seconds. Authenticated users receive:

PIPELINE_TIMEOUT_ANON * PIPELINE_TIMEOUT_AUTHENTICATED_MULTIPLIER

All values must be positive. The timeout is intentionally static and does not depend on input size or past run duration.

Variable Default Description
PIPELINE_TIMEOUT_ANON 3600 Soft limit in seconds for anonymous users
PIPELINE_TIMEOUT_AUTHENTICATED_MULTIPLIER 2.0 Multiplier applied to the anonymous limit for authenticated users
PIPELINE_TIMEOUT_HARD_MARGIN 300 Extra seconds added to the soft limit before the hard kill limit

User feedback

Timed-out runs are stored with status timeout and the message The pipeline exceeded the time limit. The existing run detail page shows this status and message when the user checks the run.


This site uses Just the Docs, a documentation theme for Jekyll.