GitHub user Hariprasath-0018 added a comment to the discussion: Alerts and
Reports Emails Not Sending
Hi @dosu Thanks for the detailed checklist! I went through each point and
here’s the status of my Superset setup:
*1. Config file placement:*
I don’t have a standard superset_config_docker.py in my directory. The
files I have are:
* superset_config.py
-
superset_config_docker_light.py
-
superset_config_local.example
-
superset_test_config_light.py
*2. Feature flags:* ✅ Already done.
*3. Celery beat schedule:* ✅ Already done.
*4. Playwright/Chromium:*
Installed manually, but had to change .env to:
ENABLE_PLAYWRIGHT=trueINCLUDE_CHROMIUM=true
before it would recognize Playwright.
*5. SMTP config:* ✅ Already done.
*6. Database migrations:* ✅ Tables migrated successfully.
*7. Active schedules:* ✅ Schedules are active.
*8. Logs:*
Worker starts fine ***@***.*** ready) and connects to Redis. Scheduler logs
show startup, but there’s no evidence of tasks being sent.
*9. Execution logs:*
ReportExecutionLog table is empty.
Despite everything above being configured, emails are still not being sent.
On Thu, 22 Jan 2026 at 14:51, dosubot[bot] ***@***.***> wrote:
> *dosubot[bot]* left a comment (apache/superset#37357)
> <https://github.com/apache/superset/issues/37357#issuecomment-3783371569>
>
> Hi @Hariprasath-0018 <https://github.com/Hariprasath-0018>! I'm Dosu
> <https://go.dosu.dev/dosubot> and I’m helping the superset team.
>
> Here’s a focused checklist to help you pinpoint why alerts/reports aren’t
> triggering or sending emails in your Superset setup:
>
> 1.
>
> *Config file placement:* In Docker Compose, Superset only loads custom
> config from docker/pythonpath_dev/superset_config_docker.py. If you’re
> editing another file (like superset_config.py elsewhere), your changes
> (e.g., ALERT_REPORTS, ALERT_REPORTS_NOTIFICATION_DRY_RUN,
> CeleryConfig) may not be picked up. Double-check the config is in the right
> place and mounted correctly in your containers (source)
>
> <https://github.com/apache/superset/discussions/35178#discussioncomment-14443403>
> .
> 2.
>
> *Feature flags:* Make sure ALERT_REPORTS is True and
> ALERT_REPORTS_NOTIFICATION_DRY_RUN is False in the loaded config. If
> dry-run is enabled (or not set in the right file), Superset will silently
> skip sending emails (source)
> <https://github.com/apache/superset/issues/33815>.
> 3.
>
> *Celery beat schedule:* Your CeleryConfig must include a beat_schedule
> with at least:
>
> class CeleryConfig:
> beat_schedule = {
> "reports.scheduler": {
> "task": "reports.scheduler",
> "schedule": crontab(minute="*", hour="*"),
> },
> "reports.prune_log": {
> "task": "reports.prune_log",
> "schedule": crontab(minute=10, hour=0),
> },
> }
>
> If this is missing or not loaded, scheduled reports won’t run (source)
> <https://github.com/apache/superset/discussions/31647>.
> 4.
>
> *Playwright/Chromium:* For screenshots, Playwright is now recommended.
> You must:
> - Install Playwright and Chromium in the worker container (pip install
> playwright && playwright install chromium).
> - Set SUPERSET_FEATURE_PLAYWRIGHT_REPORTS_AND_THUMBNAILS = True in
> your config.
> - In Docker, set ENABLE_PLAYWRIGHT=true and INCLUDE_CHROMIUM=true
> in docker/.env, then rebuild your images.
> - Test with playwright show-browser chromium and playwright
> screenshot http://superset:8088/ /tmp/test.png inside the worker
> container (source)
> <https://github.com/apache/superset/discussions/35327>.
> 5.
>
> *SMTP config:* Confirm all SMTP settings are correct in your config
> file (SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_MAIL_FROM,
> SMTP_STARTTLS, etc.). Manual Python script tests are good, but
> Superset must use the same config (source)
> <https://github.com/apache/superset/issues/33815>.
> 6.
>
> *Database migrations:* Make sure all migrations are applied and the
> following tables exist and are populated: report_schedule,
> report_recipient, report_execution_log. If these are missing, reports
> can’t be scheduled or executed.
> 7.
>
> *Active schedules:* Check that your reports/alerts are active in the
> DB (active = True in report_schedule). If there are no active
> schedules, nothing will trigger.
> 8.
>
> *Logs:* Look for reports.scheduler and reports.execute in your Celery
> worker and beat logs. If you see the scheduler but not execute, the
> scheduler isn’t queuing jobs. If you see neither, the beat schedule or
> feature flag is likely not loaded.
> 9.
>
> *Execution logs:* Check the ReportExecutionLog table in your metadata
> DB for error messages or silent failures. This often reveals issues not
> visible in the UI.
>
> If any step fails, focus on fixing that before moving on. If everything
> looks correct but nothing triggers, try:
>
> - Forcing a config reload (rebuild/restart all containers).
> - Verifying the config is loaded by running print(app.config) in a
> Superset shell inside the container.
> - Checking for any errors or warnings in the logs right after
> container startup.
>
> Let me know what you find at each step—this will help narrow down the root
> cause!
>
> *To reply, just mention @dosu <https://go.dosu.dev/dosubot>.*
> ------------------------------
>
> How did I do? Good
> <https://app.dosu.dev/response-feedback/88bc3ee0-db43-4eeb-bc95-2541b6845527?feedback_type=great_response>
> | Irrelevant
> <https://app.dosu.dev/response-feedback/88bc3ee0-db43-4eeb-bc95-2541b6845527?feedback_type=irrelevant_answer>
> | Incorrect
> <https://app.dosu.dev/response-feedback/88bc3ee0-db43-4eeb-bc95-2541b6845527?feedback_type=incorrect_sources>
> | Verbose
> <https://app.dosu.dev/response-feedback/88bc3ee0-db43-4eeb-bc95-2541b6845527?feedback_type=too_verbose>
> | Hallucination
> <https://app.dosu.dev/response-feedback/88bc3ee0-db43-4eeb-bc95-2541b6845527?feedback_type=hallucination>
> | Report 🐛
> <https://app.dosu.dev/response-feedback/88bc3ee0-db43-4eeb-bc95-2541b6845527?feedback_type=bug_report>
> | Other
> <https://app.dosu.dev/response-feedback/88bc3ee0-db43-4eeb-bc95-2541b6845527?feedback_type=other>
>
> [image: Chat with Dosu]
> <https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github>
> [image: Open in Cursor]
> <https://cursor.com/link/prompt?text=Here%E2%80%99s%20a%20focused%20checklist%20to%20help%20you%20pinpoint%20why%20alerts/reports%20aren%E2%80%99t%20triggering%20or%20sending%20emails%20in%20your%20Superset%20setup%3A%0A%0A1.%20%2A%2AConfig%20file%20placement%3A%2A%2A%20In%20Docker%20Compose%2C%20Superset%20only%20loads%20custom%20config%20from%20%60docker/pythonpath_dev/superset_config_docker.py%60.%20If%20you%E2%80%99re%20editing%20another%20file%20%28like%20%60superset_config.py%60%20elsewhere%29%2C%20your%20changes%20%28e.g.%2C%20%60ALERT_REPORTS%60%2C%20%60ALERT_REPORTS_NOTIFICATION_DRY_RUN%60%2C%20CeleryConfig%29%20may%20not%20be%20picked%20up.%20Double-check%20the%20config%20is%20in%20the%20right%20place%20and%20mounted%20correctly%20in%20your%20containers%20%5B%28source%29%5D%28https%3A//github.com/apache/superset/discussions/35178%23discussioncomment-14443403%29.%0A%0A2.%20%2A%2AFeature%20flags%3A%2A%2A%20Make%20sure%20%60ALERT_REPORTS%60%20is%20%60True%60%20and%20%60ALERT
_REPORTS_NOTIFICATION_DRY_RUN%60%20is%20%60False%60%20in%20the%20loaded%20config.%20If%20dry-run%20is%20enabled%20%28or%20not%20set%20in%20the%20right%20file%29%2C%20Superset%20will%20silently%20skip%20sending%20emails%20%5B%28source%29%5D%28https%3A//github.com/apache/superset/issues/33815%29.%0A%0A3.%20%2A%2ACelery%20beat%20schedule%3A%2A%2A%20Your%20%60CeleryConfig%60%20must%20include%20a%20%60beat_schedule%60%20with%20at%20least%3A%0A%20%20%20%60%60%60python%0A%20%20%20class%20CeleryConfig%3A%0A%20%20%20%20%20%20%20beat_schedule%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%22reports.scheduler%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22task%22%3A%20%22reports.scheduler%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22schedule%22%3A%20crontab%28minute%3D%22%2A%22%2C%20hour%3D%22%2A%22%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%22reports.prune_log%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22task
%22%3A%20%22reports.prune_log%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22schedule%22%3A%20crontab%28minute%3D10%2C%20hour%3D0%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%60%60%60%0A%20%20%20If%20this%20is%20missing%20or%20not%20loaded%2C%20scheduled%20reports%20won%E2%80%99t%20run%20%5B%28source%29%5D%28https%3A//github.com/apache/superset/discussions/31647%29.%0A%0A4.%20%2A%2APlaywright/Chromium%3A%2A%2A%20For%20screenshots%2C%20Playwright%20is%20now%20recommended.%20You%20must%3A%0A%20%20%20-%20Install%20Playwright%20and%20Chromium%20in%20the%20worker%20container%20%28%60pip%20install%20playwright%20%26%26%20playwright%20install%20chromium%60%29.%0A%20%20%20-%20Set%20%60SUPERSET_FEATURE_PLAYWRIGHT_REPORTS_AND_THUMBNAILS%20%3D%20True%60%20in%20your%20config.%0A%20%20%20-%20In%20Docker%2C%20set%20%60ENABLE_PLAYWRIGHT%3Dtrue%60%20and%20%60INCLUDE_CHROMIUM%3Dtrue%60%20in%20%60docker/.env%60%2C%20then%20rebuild%20your%20images.%0A
%20%20%20-%20Test%20with%20%60playwright%20show-browser%20chromium%60%20and%20%60playwright%20screenshot%20http%3A//superset%3A8088/%20/tmp/test.png%60%20inside%20the%20worker%20container%20%5B%28source%29%5D%28https%3A//github.com/apache/superset/discussions/35327%29.%0A%0A5.%20%2A%2ASMTP%20config%3A%2A%2A%20Confirm%20all%20SMTP%20settings%20are%20correct%20in%20your%20config%20file%20%28%60SMTP_HOST%60%2C%20%60SMTP_PORT%60%2C%20%60SMTP_USER%60%2C%20%60SMTP_PASSWORD%60%2C%20%60SMTP_MAIL_FROM%60%2C%20%60SMTP_STARTTLS%60%2C%20etc.%29.%20Manual%20Python%20script%20tests%20are%20good%2C%20but%20Superset%20must%20use%20the%20same%20config%20%5B%28source%29%5D%28https%3A//github.com/apache/superset/issues/33815%29.%0A%0A6.%20%2A%2ADatabase%20migrations%3A%2A%2A%20Make%20sure%20all%20migrations%20are%20applied%20and%20the%20following%20tables%20exist%20and%20are%20populated%3A%20%60report_schedule%60%2C%20%60report_recipient%60%2C%20%60report_execution_log%60.%20If%20these%20are%20missing
%2C%20reports%20can%E2%80%99t%20be%20scheduled%20or%20executed.%0A%0A7.%20%2A%2AActive%20schedules%3A%2A%2A%20Check%20that%20your%20reports/alerts%20are%20active%20in%20the%20DB%20%28%60active%20%3D%20True%60%20in%20%60report_schedule%60%29.%20If%20there%20are%20no%20active%20schedules%2C%20nothing%20will%20trigger.%0A%0A8.%20%2A%2ALogs%3A%2A%2A%20Look%20for%20%60reports.scheduler%60%20and%20%60reports.execute%60%20in%20your%20Celery%20worker%20and%20beat%20logs.%20If%20you%20see%20the%20scheduler%20but%20not%20execute%2C%20the%20scheduler%20isn%E2%80%99t%20queuing%20jobs.%20If%20you%20see%20neither%2C%20the%20beat%20schedule%20or%20feature%20flag%20is%20likely%20not%20loaded.%0A%0A9.%20%2A%2AExecution%20logs%3A%2A%2A%20Check%20the%20%60ReportExecutionLog%60%20table%20in%20your%20metadata%20DB%20for%20error%20messages%20or%20silent%20failures.%20This%20often%20reveals%20issues%20not%20visible%20in%20the%20UI.%0A%0AIf%20any%20step%20fails%2C%20focus%20on%20fixing%20that%20before%20mo
ving%20on.%20If%20everything%20looks%20correct%20but%20nothing%20triggers%2C%20try%3A%0A-%20Forcing%20a%20config%20reload%20%28rebuild/restart%20all%20containers%29.%0A-%20Verifying%20the%20config%20is%20loaded%20by%20running%20%60print%28app.config%29%60%20in%20a%20Superset%20shell%20inside%20the%20container.%0A-%20Checking%20for%20any%20errors%20or%20warnings%20in%20the%20logs%20right%20after%20container%20startup.%0A%0ALet%20me%20know%20what%20you%20find%20at%20each%20step%E2%80%94this%20will%20help%20narrow%20down%20the%20root%20cause%21>
> [image: Join Discord] <https://go.dosu.dev/discord-bot> [image: Share on
> X]
> <https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/issues/37357>
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/apache/superset/issues/37357#issuecomment-3783371569>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/BCNYORQ6YHVQFRCSWHN5NBT4ICJDBAVCNFSM6AAAAACSQNNHUKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOOBTGM3TCNJWHE>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
GitHub link:
https://github.com/apache/superset/discussions/37401#discussioncomment-15583319
----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]