Skip to content

DiscordNotifier return bad request when using Airflow 3.2.0 #65279

@datateamFrontier

Description

@datateamFrontier

Under which category would you file this issue?

Providers

Apache Airflow version

3.2.0

What happened and how to reproduce it?

We encounter discord notification failure after upgrading from Airflow 3.1.7 to 3.2.0 without changing the configuration. We usually use this feature for failure report.

This is our dag for testing

import pendulum
from airflow.sdk import dag, task

from airflow.providers.discord.notifications.discord import DiscordNotifier


# Definisi DAG dengan TaskFlow API
@dag(
    dag_id="testing",
    start_date=pendulum.parse("2025-11-08T00:00:00+07:00"),
    end_date=pendulum.parse("2026-04-20T17:00:00+07:00"),
    schedule=None,
    catchup=False,
    max_active_runs=1,
    default_args={
        'on_failure_callback':  DiscordNotifier(
            discord_conn_id = 'discord_connection',
            text = 'testing',
        ),
    },

)
def testing():

    @task
    def task1():
        print('testing task 1')
        return

    @task
    def task2():
        print(1 + 'testing task 2')
        return

    task1() >> task2()

testing()

This is the log

::group::Log message source details sources=["/opt/airflow/logs/dag_id=testing/run_id=manual__2026-04-15T02:25:04.465800+00:00/task_id=task2/attempt=1.log"] 
::endgroup::
[2026-04-15T02:25:06.212451Z] INFO - DAG bundles loaded: dags-folder
[2026-04-15T02:25:06.212926Z] INFO - Filling up the DagBag from /opt/airflow/dags/testing.py
[2026-04-15T02:25:06.293095Z] ERROR - Task failed with exceptionTypeError: unsupported operand type(s) for +: 'int' and 'str'
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/execution_time/task_runner.py, line 1263 in run
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/execution_time/task_runner.py, line 1678 in _execute_task
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/bases/operator.py, line 443 in wrapper
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/bases/decorator.py, line 397 in execute
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/bases/operator.py, line 443 in wrapper
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/providers/standard/operators/python.py, line 227 in execute
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/providers/standard/operators/python.py, line 250 in execute_callable
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/execution_time/callback_runner.py, line 97 in run
    File /opt/airflow/dags/testing.py, line 38 in task2

[2026-04-15T02:25:06.770837Z] ERROR - HTTP error: Bad Request
[2026-04-15T02:25:06.770945Z] ERROR - Bad Request
[2026-04-15T02:25:06.771441Z] ERROR - Failed to send notification (sync): 400:Bad Request
[2026-04-15T02:25:06.771499Z] ERROR - Failed to run task callback kind=on_failure_callback  index=0  callback=<airflow.providers.discord.notifications.discord.DiscordNotifier object at 0x7f7ff80b5160> AirflowException: 400:Bad Request
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/execution_time/task_runner.py, line 1544 in _run_task_state_change_callbacks
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/execution_time/callback_runner.py, line 97 in run
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/sdk/bases/notifier.py, line 138 in __call__
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/providers/discord/notifications/discord.py, line 108 in notify
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/providers/discord/hooks/discord_webhook.py, line 236 in execute
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/providers/http/hooks/http.py, line 300 in run
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/providers/http/hooks/http.py, line 351 in run_and_check
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/providers/http/hooks/http.py, line 315 in check_response
,HTTPError: 400 Client Error: Bad Request for url: https://discord.com/api/webhooks/xxxxxxxx/yyyyyyyy
    File /home/airflow/.local/lib/python3.13/site-packages/airflow/providers/http/hooks/http.py, line 311 in check_response
    File /home/airflow/.local/lib/python3.13/site-packages/requests/models.py, line 1028 in raise_for_status

What you think should happen instead?

We refer to this documentation since Airflow 3.1.7 and no problem encountered. This problem occur after upgrading to 3.2.0.

Operating System

Ubuntu 24.04

Deployment

Docker-Compose

Apache Airflow Provider(s)

discord

Versions of Apache Airflow Providers

3.12.2

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

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions