apache / apache/airflow

Add "Mark as Skipped" action for Task Instances in the Airflow 3 UI

Open
#72,386 1 comment 0 reactions 0 assignees View on GitHub
area:API area:UI kind:feature
Dominant language
Python
Stars
46.9k
Forks
17.8k
Avg merge
2d 9h
Merged PRs (30d)
472

Description

### Description

The Airflow 3 UI currently allows operators to manually mark a Task Instance as success or failed, but does not provide an option to mark it as skipped.

### Use case/motivation

In the Airflow 3 UI, the Task Instance "Mark as" action only exposes:
- Success
- Failed

As a result, SKIPPED is not available as a manual Task Instance action.

### Expected behavior

The Task Instance "Mark as" action should provide:
- Success
- Failed
- Skipped

Selecting Skipped should set the selected Task Instance(s) to TaskInstanceState.SKIPPED, without executing the task.

### Use case

During the manual recovery of a DAG run, an operator may decide that a particular task should not be executed for this run.

For example:
task_a → task_b → task_c
If task_b should intentionally not run for this particular DAG run, the desired result is:
task_a → SUCCESS
task_b → SKIPPED
task_c → ...

Marking task_b as SUCCESS is not equivalent.

SUCCESS means that the task successfully executed, whereas SKIPPED records that the task was intentionally not executed.

This distinction is important for:
- accurately representing the execution history;
- operational troubleshooting
- downstream trigger_rule evaluation
- depends_on_past

Airflow's documentation explicitly treats skipped differently from success. For example, none_failed considers upstream tasks that are either successful or skipped as acceptable, while none_skipped explicitly rejects skipped upstream tasks. Therefore, replacing SKIPPED with SUCCESS can change DAG behavior.

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [x] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

Contributor guide

Open the contributing guide

Research direction

Start in the Airflow 3 UI at the Task Instance "Mark as" action and inspect how the existing Success and Failed choices update selected instances. Add the Skipped choice, then verify that selected Task Instances become SKIPPED without executing and that the action works for multiple selections.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
frontend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
66/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.