You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After marking a task instance as failed/success, the UI becomes
unresponsive — buttons and links stop reacting to clicks. The state badge
itself updates correctly (this part was fixed by #67212), but the page
freezes for several seconds and a hard refresh is needed to recover.
DevTools Network shows 3 back-to-back GET /ui/grid/ti_summaries/...
NDJSON stream calls triggered by the new cache-subscriber watcher in useGridTISummaries.ts. Each stream re-runs setSummariesByRunId(...)
once per emitted line (~14 lines per stream), producing ~42 React state
updates in quick succession on top of an already-busy page render —
which matches the user-observed freeze.
Steps to reproduce
Run airflow standalone from main HEAD with examples enabled.
Trigger any DAG (e.g. tutorial_dag) and let a task finish.
The watcher should debounce all mutation-driven invalidations into a
single re-stream, the same way it already attempts via clearTimeout / setTimeout(..., 0). The page should remain responsive after the mark.
What I have verified
Reproduces on a clean checkout of main HEAD (707e316), no source
modifications, vanilla pnpm dev against apache/airflow:3.2.2
standalone as backend (proxied via vite).
Network panel confirms 3 stream fetches per mark action, not 1.
usePatchTaskInstance.onSuccessFn invalidates several watched keys
inside a Promise.all. Each invalidation queues a microtask; setTimeout(..., 0) runs in a separate macrotask, so the clearTimeout
debounce may not coalesce when the invalidation events span more than
one microtask cycle.
Operating System
macOS 15.5
Apache Airflow Provider(s)
n/a
Versions of Apache Airflow Providers
n/a
Deployment
Other Docker-based deployment
Deployment details
apache/airflow:3.2.2 for backend; UI served from pnpm dev on main
HEAD with vite proxy to the standalone container.
A heavier debounce (e.g. 50–100 ms instead of 0 ms) or batching the
invalidations inside the mutation hook would probably help, but the
right fix depends on whether the maintainers prefer a tighter
watcher contract or a different aggregation point.
Under which category would you file this issue?
Airflow Core
Apache Airflow version
main (commit 707e316, post-3.2.2)
What happened and how to reproduce it?
After marking a task instance as failed/success, the UI becomes
unresponsive — buttons and links stop reacting to clicks. The state badge
itself updates correctly (this part was fixed by #67212), but the page
freezes for several seconds and a hard refresh is needed to recover.
DevTools Network shows 3 back-to-back
GET /ui/grid/ti_summaries/...NDJSON stream calls triggered by the new cache-subscriber watcher in
useGridTISummaries.ts. Each stream re-runssetSummariesByRunId(...)once per emitted line (~14 lines per stream), producing ~42 React state
updates in quick succession on top of an already-busy page render —
which matches the user-observed freeze.
Steps to reproduce
airflow standalonefrommainHEAD with examples enabled.tutorial_dag) and let a task finish.✓/✗menu → mark as failed → confirm.tutorial_dag?run_ids=...(initiatoruseGridTISummariesStream) fire. Page becomes unclickable for ~3-5s.What you think should happen instead?
The watcher should debounce all mutation-driven invalidations into a
single re-stream, the same way it already attempts via
clearTimeout/setTimeout(..., 0). The page should remain responsive after the mark.What I have verified
mainHEAD (707e316), no sourcemodifications, vanilla
pnpm devagainstapache/airflow:3.2.2standalone as backend (proxied via vite).
airflow-core/src/airflow/ui/src/queries/useGridTISummaries.tslines140-165 — the cache-subscriber watcher added in Improve query validation, including for streaming #67212.
usePatchTaskInstance.onSuccessFninvalidates several watched keysinside a
Promise.all. Each invalidation queues a microtask;setTimeout(..., 0)runs in a separate macrotask, so theclearTimeoutdebounce may not coalesce when the invalidation events span more than
one microtask cycle.
Operating System
macOS 15.5
Apache Airflow Provider(s)
n/a
Versions of Apache Airflow Providers
n/a
Deployment
Other Docker-based deployment
Deployment details
apache/airflow:3.2.2for backend; UI served frompnpm devonmainHEAD with vite proxy to the standalone container.
Anything else?
Improve query validation, including for streaming, merged 2026-05-20).Improve query validation, including for streaming #67212 — this issue tracks the new freeze symptom that appeared
alongside it.
invalidations inside the mutation hook would probably help, but the
right fix depends on whether the maintainers prefer a tighter
watcher contract or a different aggregation point.
Are you willing to submit PR?
Code of Conduct