Skip to content

Mapped XCom slice endpoint accepts a zero step #70123

Description

@viiccwen

Under which category would you file this issue?

Airflow Core

Apache Airflow version

main

What happened and how to reproduce it?

The Execution API endpoint for reading a mapped XCom sequence slice accepts step=0 and silently treats it as step=1. A zero slice step is invalid sequence semantics, so this hides malformed requests from Task SDK clients.

Steps to reproduce:

  1. Start the Airflow development environment from the main branch.

  2. Send the following request through an authenticated Execution API client:

    GET /execution/xcoms/dag/runid/task/xcom_1/slice?step=0
  3. Observe that the endpoint responds with HTTP 200 instead of rejecting the invalid step:

    []

The behavior comes from using params.step or 1, which converts the valid integer value 0 to the default step of 1.

What you think should happen instead?

The current Execution API version should reject step=0 with HTTP 422 before querying XCom data. Older
released API versions should retain their existing behavior through the Execution API versioning layer.
Omitted, positive, and negative step values should remain unchanged.

Operating System

No response

Deployment

None

Apache Airflow Provider(s)

No response

Versions of Apache Airflow Providers

No response

Official Helm Chart version

Not Applicable

Kubernetes Version

No response

Helm Chart configuration

No response

Docker Image customizations

No response

Anything else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:APIAirflow's REST/HTTP APIkind:bugThis is a clearly a bugneeds-triagelabel for new issues that we didn't triage yet

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions