Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Trigger UI clamps Param min/max instead of rejecting out-of-range values

Đang mở Phù hợp với người mới
#75,747 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@muditagrawal2007 đang làm issue này rồi.

Từ ngày 27/10/2026.

  • #75818 của @muditagrawal2007 — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
72/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, react, typescript

Hướng nghiên cứu

Bắt đầu trong biểu mẫu Trigger của Airflow 3 tại FieldNumber.tsx, nơi issue nêu schema minimum và maximum được truyền vào NumberInput. Theo dõi cách trường nhập liệu này giữ lại các giá trị đã nhập và cách việc gửi biểu mẫu báo lỗi Param JSON Schema; so sánh với hành vi Trigger được tài liệu hóa. Công việc hoàn tất khi các giá trị ngoài phạm vi bị từ chối kèm lỗi và không thể tạo DagRun.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

kind:bug needs-triage
Under which category would you file this issue?

Airflow Core

Apache Airflow version

3.3.1

What happened and how to reproduce it?

When a DAG Param sets a minimum or maximum on an integer field, typing a value outside that range in the Airflow 3 Trigger form does not fail the trigger. The form quietly changes the number to fit the allowed range, then submits it. The run starts with the corrected value instead of being blocked.

Example DAG:

from airflow.sdk import Param, dag, task

@dag(
    dag_id="repro_param_minmax_clamp",
    schedule=None,
    start_date=None,
    catchup=False,
    params={
        "hold_seconds": Param(180, type="integer", minimum=1, maximum=600),
    },
)
def repro():
    @task
    def show(params=None):
        print((params or {}).get("hold_seconds"))

    show()

repro()
How to reproduce
  1. Deploy the DAG above on Airflow 3.3.1 (also present on current main FieldNumber.tsx: max={param.schema.maximum}, min={param.schema.minimum}).
  2. Open Trigger DAG in the UI.
  3. Type 6666 in hold_seconds (above maximum=600).
  4. Trigger the DAG.
  5. Observe: the field/value becomes 600 (or similar clamp), the run starts successfully, and the task prints 600.
  6. Repeat with 0 or -5 (below minimum=1): the UI clamps up to 1 instead of blocking the trigger.

Contrast: CLI/API correctly reject the same values:

airflow dags trigger repro_param_minmax_clamp --conf '{"hold_seconds": 6666}'
# ParamValidationError: 6666 is greater than the maximum of 600

airflow dags trigger repro_param_minmax_clamp --conf '{"hold_seconds": 0}'
# ParamValidationError: 0 is less than the minimum of 1

Docs say invalid params should show a warning and not create a DagRun. The UI path never sends the invalid value, so that validation never runs.

What you think should happen instead?
  1. User can type a value outside [minimum, maximum] (or the field keeps the invalid typed value).
  2. On Trigger, the UI/API fails validation (inline or form error), same as CLI/API ParamValidationError.
  3. No DagRun is created until the value is corrected.

Suggested direction: do not pass schema min/max into NumberInput as hard clamps (or disable clamp behavior), and rely on Param JSON Schema validation at submit time for both min and max, consistent with the documented trigger behavior and with the backend.

Operating System

Ubuntu 24.04.4 LTS

Deployment

Docker-Compose

Apache Airflow Provider(s)

No response

Versions of Apache Airflow Providers

No response

Official Helm Chart version

No response

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
Ngôn ngữ chính
Python
Star
47.3k
Fork
18.1k
Merge trung bình
19 giờ 26 phút
Pull request đã merge (30 ngày)
639

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/airflow

Tất cả issue của apache/airflow

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.