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?
Code of Conduct
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 tagselection on the DAGs list page does not persist:The selected tag filter is cleared each time, requiring the user to re-select the tag(s).
Observed behavior:
Regression context
2.10.5, tag filtering does persist across navigation and browser restarts.2.xthis behavior is implemented server-side via Flask session storage (flask.session["tags_filter"]) inairflow/www/views.py.What you think should happen instead?
The DAG tag filter should persist across:
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:
As a result, the DAG tag filter state is not stored in:
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?
Code of Conduct