Improve the default SMTP task failure email template#67931
Conversation
Signed-off-by: wilmerdooley <wilmerdooley1@gmail.com>
|
Can you please add before and after images if the template? |
|
I looked into the two red checks and they aren't coming from this change. Both failed during the runner setup step ("Cleanup repo"), before the code was even checked out, when the runner tried to pull the A re-run of just those two jobs should clear them, but I can't trigger that myself as an external contributor. How would you prefer to proceed? Happy to rebase onto current main and push if a fresh commit is the easier way to re-trigger CI, though that's your call. |
|
The new layout is much easier to scan, but the bundled Could you make that heading state-aware or neutral and add a regression test with a non-failure state? It would also be useful to assert the new Dag, task, state, and log-link fields directly, including that the log URL is the link target. The current default-template test sets The two failing jobs are setup-only failures: both exhausted their stash-artifact download retries during Drafted-by: Codex (GPT-5); reviewed by @Vamsi-klu before posting |


Resolves #61667.
The default email that
SmtpNotifiersends on task failure does not show which DAG or task failed, so it is hard to triage at a glance. This restyles the default templates for readability, keeping the change minimal and backward compatible.What changed
templates/email.html: add DAG and Task rows (previously missing) alongside the existing Run ID, Try, State, Host and log link, and lay the body out as a scannable table. Layout uses a plain<table>with inline cell styles only (no<style>or<head>styling, no CSS grid or flexbox), so it renders consistently in Gmail and Outlook.templates/email_subject.jinja2: a more scannable subject,[Airflow] {{ ti.dag_id }}.{{ ti.task_id }} {{ ti.state }} - Run {{ ti.run_id }}. The SLA branch is unchanged.tests/unit/smtp/notifications/test_smtp.py: update the one assertion that pins the default subject.Scope and compatibility
EmailOperatorto SMTP provider #30531).subject_templateorhtml_content_template(connection extras) still takes precedence over the bundled defaults.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code
Important
🛠️ Maintainer triage note for @wilmerdooley · by
@potiuk· 2026-07-08 16:05 UTCThis PR was in the maintainer review queue, but its Sqlite and low-dependency provider tests are now failing — so I've removed the
ready for maintainer reviewlabel and moved it back to your court.The ball is in your court — you've been assigned. Fix the failing tests, then mark it Ready for review again. See the Pull Request quality criteria.
Automated triage — may be imperfect; a maintainer takes the next look.