Skip to content

"Partitioned Runs" tab is missing on UI #62564

Closed

Description

@atuls4441

Apache Airflow version

main (development)

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

No response

What happened?

Asset partitioned dagruns tab should be displayed on UI for consumer dags.

Image

What you think should happen instead?

No response

How to reproduce

Use the below Dag:

from __future__ import annotations

from airflow import DAG
from airflow.providers.standard.operators.empty import EmptyOperator
from airflow.sdk import (
    Asset,
    PartitionedAssetTimetable,
    IdentityMapper,
)

from datetime import datetime

sales_data = Asset(uri="file://aip76/sales_data.csv")
inventory_data = Asset(uri="file://aip76/inventory_data.csv")
pricing_data = Asset(uri="file://aip76/pricing_data.csv")


with DAG(
    dag_id="ui_partition_asset_producer",
    start_date=datetime(2024, 1, 1),
    schedule=None,   # manual partition control
    catchup=False,
    tags=["aip76", "ui_test"],
) as producer_dag:

    produce_sales = EmptyOperator(
        task_id="produce_sales",
        outlets=[sales_data],
    )

    produce_inventory = EmptyOperator(
        task_id="produce_inventory",
        outlets=[inventory_data],
    )

    produce_pricing = EmptyOperator(
        task_id="produce_pricing",
        outlets=[pricing_data],
    )


with DAG(
    dag_id="ui_partition_asset_consumer",
    start_date=datetime(2024, 1, 1),
    schedule=PartitionedAssetTimetable(
        assets=sales_data & inventory_data & pricing_data,
        default_partition_mapper=IdentityMapper(),
    ),
    catchup=False,
    tags=["aip76", "ui_test"],
) as consumer_dag:

    consume_task = EmptyOperator(
        task_id="consume_all_assets"
    )

Operating System

Linux

Versions of Apache Airflow Providers

No response

Deployment

Other

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

  1. changed the title [-]"partitioned Runs" missing on UI[/-] [+]"Partitioned Runs" tab is missing on UI[/+] on Feb 27, 2026
  2. added
    area:UIRelated to UI/UX. For Frontend Developers.
    on Feb 27, 2026
  3. added a commit that references this issue on Feb 28, 2026
    7d28829
  4. added
    priority:highHigh priority bug that should be patched quickly but does not require immediate new release
    and removed
    needs-triagelabel for new issues that we didn't triage yet
    on Mar 10, 2026
  5. vatsrahul1001 commented on Mar 10, 2026

    @vatsrahul1001
    Contributor

    cc: @Lee-W

  6. self-assigned this
    on Mar 11, 2026
  7. self-assigned this
    on Mar 11, 2026
  8. jason810496 commented on Mar 11, 2026

    @jason810496
    Member

    Asset partitioned dagruns tab should be displayed on UI for consumer dags.

    Hi @atul-astronomer,
    Do you mean the DagRun tab should show the ‎partition_key in the table by default when using an Asset partitioned Dag?

    Image

    I’m able to change the table logic so that if there’s any DagRun that has a ‎partition_key, the ‎partition_key accessorKey is selected for the table. Before the fix, the ‎partition_key accessorKey was actually set to false. However, I’m not sure whether it was intentionally set to false by default (e.g. to avoid showing too many advanced options on the DagRun tab).

    Image

    const { setTableURLState, tableURLState } = useTableURLState({
    columnVisibility: {
    conf: false,
    dag_version: false,
    end_date: false,
    partition_key: false,
    },
    });

  9. Lee-W commented on Mar 11, 2026

    @Lee-W
    Member

    Do you mean the DagRun tab should show the ‎partition_key in the table by default when using an Asset partitioned Dag?

    Is it possible to show it when dag.timetable_partitioned is true?

  10. jason810496 commented on Mar 11, 2026

    @jason810496
    Member

    Do you mean the DagRun tab should show the ‎partition_key in the table by default when using an Asset partitioned Dag?

    Is it possible to show it when dag.timetable_partitioned is true?

    It's possible to do that, working on it.

  11. atuls4441 commented on Mar 11, 2026

    @atuls4441
    ContributorAuthor

    I am expecting UI to have tab 'Partitioned Runs' tab as per this PR
    @jason810496 @Lee-W

  12. jason810496 commented on Mar 11, 2026

    @jason810496
    Member

    I am expecting UI to have tab 'Partitioned Runs' tab as per this PR @jason810496 @Lee-W

    I see, thanks for the clarification.

  13. added 3 commits that reference this issue on Mar 12, 2026
    f2d85b2
    4390561
    3b7ab5e
  14. jason810496 commented on Mar 12, 2026

    @jason810496
    Member

    Hi @guan404ming,
    Would it be possible for you to provide some additional context about the related change, or explain how the “Partitioned Runs” feature works please?

    Also, how could I reproduce the environment (Dags or steps) used in? I still haven’t been able to reproduce the conditions needed to show the “Partitioned Runs” tab, as demonstrated in the video in #61398.
    Thank you very much!

    Right now, the only way I can fix this is by adding a dedicated “Partitioned Runs” tab on the DagRun page ( which I’d like to avoid, since adding a dedicated tab would just duplicate existing components )

    The only thing I know so far is that we need to fix the semantic meaning of ‎dag_model.timetable_partitioned on the API side.
    However, the API side patch is not enough to solve the error.

    index 155b49726f..78a8188596 100644
    --- a/airflow-core/src/airflow/api_fastapi/core_api/routes/ui/assets.py
    +++ b/airflow-core/src/airflow/api_fastapi/core_api/routes/ui/assets.py
    @@ -55,7 +55,7 @@ def next_run_assets(
         pending_partition_count: int | None = None
     
         queued_expr: ColumnElement[int]
    -    if is_partitioned := dag_model.timetable_summary == "Partitioned Asset":
    +    if is_partitioned := dag_model.timetable_partitioned:
             pending_partition_count = session.scalar(
                 select(func.count())
                 .select_from(AssetPartitionDagRun)
    diff --git a/airflow-core/src/airflow/api_fastapi/core_api/routes/ui/partitioned_dag_runs.py b/airflow-core/src/airflow/api_fastapi/core_api/routes/ui/partitioned_dag_runs.py
    index f9090a6ece..b233f3d543 100644
    --- a/airflow-core/src/airflow/api_fastapi/core_api/routes/ui/partitioned_dag_runs.py
    +++ b/airflow-core/src/airflow/api_fastapi/core_api/routes/ui/partitioned_dag_runs.py
    @@ -71,7 +71,7 @@ def get_partitioned_dag_runs(
             # Single query: validate Dag + get required count
             dag_info = session.execute(
                 select(
    -                DagModel.timetable_summary,
    +                DagModel.timetable_partitioned,
                     func.count(DagScheduleAssetReference.asset_id).label("required_count"),
                 )
                 .outerjoin(
  15. Lee-W commented on Mar 12, 2026

    @Lee-W
    Member

    @guan404ming could it be something we later removed after Brent's suggestion?

  16. guan404ming commented on Mar 12, 2026

    @guan404ming
    Member

    Yes the tab is removed after Brent suggestions. Do we need to add it back?

  17. Lee-W commented on Mar 12, 2026

    @Lee-W
    Member

    I don't think so. @atul-astronomer it's no longer a desired behavior. I think we should go with #62564 (comment) insetad

  18. atuls4441 commented on Mar 12, 2026

    @atuls4441
    ContributorAuthor

    Any document or screenshot how UI should be?
    @Lee-W

  19. jason810496 commented on Mar 12, 2026

    @jason810496
    Member

    Any document or screenshot how UI should be? @Lee-W

    The UI will be like: #62564 (comment)
    What Wei mentioned is the Table will show (dynamic resolute via dag.timetable_partitioned or dag_run.partition_key and set "Partition Key" selected for the Table) the "Partition Key" in Run tab if any of the DagRuns is "Partitioned Runs".

  20. Lee-W commented on Mar 14, 2026

    @Lee-W
    Member

    Any document or screenshot how UI should be? @Lee-W

    Not really. If the current design (we can find the information we need with ease) makes sense and no one have better idea, then that's the "how UI should be"

  21. jason810496 commented on Mar 16, 2026

    @jason810496
    Member

    Not really. If the current design (we can find the information we need with ease) makes sense and no one have better idea, then that's the "how UI should be"

    I think we could leave the UI as it is and close this issue as not planned right?
    cc @bbovenzi to double check when you have a moment, thanks!

  22. bbovenzi commented on Mar 16, 2026

    @bbovenzi
    Contributor

    Yes, I wanted to avoid the bloat of adding extra tabs. Especially because once a partition has run. It's just a dag run. The only thing we want to show are "pending runs" which I think can fit into the existing Overview tab

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

Metadata

Metadata

Labels

affected_version:3.2Use for reporting issues with 3.2area:UIRelated to UI/UX. For Frontend Developers.area:corekind:bugThis is a clearly a bugpriority:highHigh priority bug that should be patched quickly but does not require immediate new release

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions