Improve default task failure email template for readability and operational clarity
#61667 opened on Feb 9, 2026
Description
Description
The default Airflow task failure email is difficult to read and not optimized for operators.
Currently the subject and body contain a raw Python object dump (UUIDs, repr(), internal fields), which makes it hard to quickly understand:
- which DAG failed
- which task failed
- when it failed
- where to click for logs
This is noisy and not human-friendly for production operations.
What is proposed
Replace the current default task failure email with a cleaner, human-readable template.
Instead of exposing a raw Python object dump (UUIDs, internal fields, repr()), the email should present structured, actionable information: DAG, task, run ID, attempt, timestamps, host, and a direct link to logs.
Provide a simple, modern HTML + text layout optimized for quick scanning and mobile readability, while keeping advanced/debug details optional.
This change improves the out-of-the-box operator experience without requiring users to create custom templates, and remains fully backward compatible since templates can still be overridden.
I’ve attached the template files I created. Feel free to reuse or adapt them if helpful.
Use case/motivation
In real deployments:
- alerts are read quickly on mobile
- operators need key info at a glance
- long debug metadata is rarely useful in email
- links to logs are more important than internal fields
Today this requires fully custom templates to get a usable format.
A better default template would improve UX out-of-the-box and reduce customization overhead.
Related issues
No response
Are you willing to submit a PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct