Skip to content

Links to dagruns beyond last 25 runs don't work (take 3) #39642

Description

@hterik

Apache Airflow version

2.9.1

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

No response

What happened?

This is a continuation of #34723 that was fixed in #34887, later fixed again in #37018, reported as problematic for other reasons in #38939, then later fixed yet again in #38941.
Unfortunatelly the issue still remains.

In short, the problem is that the grid view by default only shows 25 dagruns, with base_date starting at current time. If dag_run_id query parameter points to a dag run that is older than today - 25 runs, it will not be pre-selected. This makes it impossible to permalink to specific runs, without knowing in advance the base_date for that run.

1.Start 50 instances of dag mydag and wait for them to complete
2. Visit Browse -> Task Instances list: airflow/taskinstance/list/?_flt_3_dag_id=mydag
3. Scroll to the bottom and click on the oldest run, in the Task Id column, this link will look something like /dags/mydag/grid?task_id=mytask&dag_run_id=123456&tab=graph
4. Dag grid view opens, but no dagrun is selected. 🙁

What you think should happen instead?

Dag grid should open and have dag_run_id=123456 selected.

It appears like there are two different endpoints, one called /graph, that does handle redirecting the base_date to include older runs, and another called /grid that doesn't.
When browsing from the Browse -> DAG runs list instead, it uses the /graph endpoint and there the links work, even for older runs. 👍
@bbovenzi, do you know if the /graph is the one to use for all permalink purposes and this solves these base_date issues?

How to reproduce

Operating System

Debian Bookworm

Versions of Apache Airflow Providers

No response

Deployment

Other Docker-based deployment

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. added
    area:UIRelated to UI/UX. For Frontend Developers.
    and removed
    needs-triagelabel for new issues that we didn't triage yet
    on May 15, 2024
  2. RNHTTR commented on May 15, 2024

    @RNHTTR
    Contributor

    There's some additional bizarre behavior that might be related. When clicking on the logs icon from Browse -> Task Instances, it only shows a single DAG run (the only one that was scheduled -- the other ~40 were triggered by button mashing), and it says "No XCom" where the logs should be:

    image
  3. mpolatcan commented on May 27, 2024

    @mpolatcan
    Contributor

    Hi @hterik, we faced same issue too. Problem is that task_instance.log_url generates log url to page that has this error. So, I resolved issue by generating custom execution log url with below function and use in operator callbacks for our Slack notifications. Basically, function generate url to see full execution log, not routes traffic to grid view 😅:

    from datetime import datetime
    from urllib.parse import quote
    
    def __generate_execution_log_url(context: dict):
        dag_id = context["dag_run"].dag_id
        task_instance = context["ti"]
        task_id = task_instance.task_id
        encoded_execution_date = quote(task_instance.execution_date.strftime("%Y-%m-%dT%H:%M:%S.%f%z"))
    
        return f"https://airflow.example.com/log?dag_id={dag_id}&task_id={task_id}&execution_date={encoded_execution_date}"
  4. sbrinkhorst commented on Jul 3, 2024

    @sbrinkhorst

    I have built the main branch of the project (at commit c5c50cc to be precise) and still see the problem. Should we reopen this ticket or should I create a new one? Or is there something I'm missing here?

    Screenshot 2024-07-03 at 13 38 14
  5. hterik commented on Jun 29, 2026

    @hterik
    ContributorAuthor

    This problem partially persists in Airflow 3.1.8. Linking to a dagrun older than the 10 runs shown in the grid view will not show the grid for the selection, instead keep it at the most recent 10. The Gantt view is not possible to use for older dags any more, that used to be possible before.

    The ambiguity and selection of incorrect task instance seem to be fixed now though. When the dag is older, no task instance is selected at all in the grid view. This is a better fallback as it avoids misrepresentation.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions