Apache Airflow 3.2.2 Release - Triggerer and UI Updates


Apache Airflow 3.2.2 was published on May 29, 2026. This release resolves a significant race condition in the triggerer component and enhances the scalability of UI search filters by adopting index friendly prefix matching.

The full release notes and downloads are on the GitHub release page.

This release includes a major fix for the triggerer component to address stalled deferred tasks. A race condition and potential deadlock were identified in the internal subprocess of the triggerer. This issue was particularly visible when triggers called synchronous SDK methods such as those used in Google provider operators to check task states.

The fix replaces lock based serialization with response multiplexing. Each request now carries a unique ID and responses are routed back to the correct caller. This change eliminates contention between trigger threads regardless of the volume of concurrent requests.

Additionally, a new watchdog mechanism has been introduced. If the triggerer subprocess becomes unresponsive for longer than a specified limit, the parent process will stop updating its heartbeat. This allows the scheduler to detect the failure and reassign triggers instead of letting tasks time out. This behavior is controlled by the [triggerer] runner_health_check_threshold configuration option which defaults to 30 seconds.

The Airflow UI has transitioned from substring matching to prefix matching for search filters on list endpoints. Previous versions used *_pattern REST API parameters which resulted in ILIKE '%term%' queries. These queries require full table scans and do not benefit from standard B tree indexes.

The updated UI now uses *_prefix_pattern parameters which translate to LIKE 'term%' range scans. This allows the database to utilize indexes effectively, maintaining high performance even in very large deployments with thousands of DAGs or tasks.

For users who require the previous behavior, a “Match anywhere” toggle has been added to the search bars. Flipping this toggle switches the specific input back to the substring matching logic.

Several security related improvements are included in this version. The airflow.utils.email.send_email utility now validates SMTP server certificates against the system trusted CA bundle when performing a STARTTLS upgrade. Previously, this call was made without an SSL context. Organizations using self signed certificates on internal SMTP servers may need to set email.ssl_context = "none" in their configuration to maintain existing connectivity.

The [core] allowed_deserialization_classes_regexp setting has also been tightened. The project now uses re.fullmatch instead of re.match for these patterns. This ensures that a pattern intended for a specific class does not accidentally match malicious classes that share the same prefix.

Operators should review the following changes before upgrading to 3.2.2:

  • SMTP STARTTLS now requires a valid certificate by default. Adjust email.ssl_context if using private CAs.
  • UI search defaults to prefix matching. Use the new UI toggle for substring searches.
  • Regex patterns for deserialization now require full string matches. Update existing patterns with a trailing .* if prefix matching was intended.
  • Custom deadline reference classes must now be registered via the deadline_references attribute in an AirflowPlugin.