### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
downstream=downstream,
                future=future,
                past=past,
                state=state,
                commit=commit,
                session=session,
            )
            if not commit:
                return altered
            
            
            session.flush()
            task_subset = self.partial_subset(
                task_ids_or_regex=task_ids,
                include_downstream=True,
                include_upstream=False,
            )
            task_subset.clear(
                start_date=start_date,
                end_date=end_date,
                include_subdags=True,
                include_parentdag=True,
                only_failed=True,
                session=session,
                
                exclude_task_ids=frozenset(task_ids),
            )
        return altered
    @property
    def roots(self) -> list[Operator]: