Skip to content

DAG list Filter by tag state not persisted in Airflow 3.x #60590

Description

@zachliu

Apache Airflow version

3.1.6

If "Other Airflow 3 version" selected, which one?

No response

What happened?

In Airflow 3.1.6, the Filter by tag selection on the DAGs list page does not persist:

  • Navigating away from the DAGs list and back
  • Closing and reopening the browser tab

The selected tag filter is cleared each time, requiring the user to re-select the tag(s).

Observed behavior:

  • Tag selection only lives in in-memory UI state
  • No persistence via URL query params, browser storage, or server session

Regression context

  • In Airflow 2.10.5, tag filtering does persist across navigation and browser restarts.
  • In Airflow 2.x this behavior is implemented server-side via Flask session storage (flask.session["tags_filter"]) in airflow/www/views.py.

What you think should happen instead?

The DAG tag filter should persist across:

  • Page navigation
  • Browser restarts

This is important for usability when working with large DAG inventories or tag-based workflows.

What likely went wrong

During the Airflow 3.x UI migration from server-rendered Flask views to a React-based UI:

  • The legacy persistence mechanism (Flask session + redirect logic) was removed
  • No equivalent client-side persistence was introduced

As a result, the DAG tag filter state is not stored in:

  • URL query parameters
  • localStorage / sessionStorage
  • Any server-side user preference store

How to reproduce

Screencast.2026-01-15.09.59.21.mp4

Operating System

LM 21.3 with docker python:3.12-slim-bookworm

Versions of Apache Airflow Providers

No response

Deployment

Docker-Compose

Deployment details

No response

Anything else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:UIRelated to UI/UX. For Frontend Developers.kind:bugThis is a clearly a bug

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions