dosubot[bot] commented on issue #37127:
URL: https://github.com/apache/superset/issues/37127#issuecomment-3748827958
<!-- Answer -->
Superset 6.0.0 still requires Celery Beat for scheduling alerts and email
reports—there’s no built-in replacement scheduler yet. The permission error
with `celerybeat-schedule` in Docker happens because the Celery Beat process
can’t write to the directory where it stores its schedule file (usually in
`SUPERSET_HOME`, which is `/app/superset_home` in your setup).
To fix this, make sure:
- The `superset_home` volume is a Docker named volume (not a host-mounted
directory with mismatched ownership).
- All Superset services (web, worker, beat) share the same `superset_home`
volume.
- The container user for the Beat service has write permissions to
`/app/superset_home`. The official setup runs as `root` for this reason—if you
use a different user, ensure the volume is owned by that user or run `chown`
before starting Celery Beat.
Example from the official compose file:
```yaml
services:
superset-worker-beat:
image: apache/superset:latest
user: root
volumes:
- superset_home:/app/superset_home
command: ["/app/docker/docker-bootstrap.sh", "beat"]
volumes:
superset_home:
```
Celery Beat is started with:
```
celery --app=superset.tasks.celery_app:app beat --pidfile
/tmp/celerybeat.pid -l INFO -s "/app/superset_home/celerybeat-schedule"
```
If you use a host-mounted volume, check its ownership and permissions inside
the container. If you see permission errors, try running the container as
`root` or fix the volume’s ownership.
Feature flags for alerts/reports must be enabled:
```python
FEATURE_FLAGS = {
"ALERT_REPORTS": True,
}
ALERT_REPORTS_NOTIFICATION_DRY_RUN = False
EMAIL_NOTIFICATIONS = True
ENABLE_SCHEDULED_EMAIL_REPORTS = True
```
References:
- [Celery Beat setup and permissions in official
docker-compose.yml](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/docker-compose.yml#L24-L264)
- [Celery Beat startup command and schedule file
location](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/docker/docker-bootstrap.sh#L68-L72)
- [Celery Beat is still required for scheduling in Superset
6.0.0](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/tasks/scheduler.py#L43-L78)
Let me know if you need a working compose snippet or help troubleshooting
volume permissions!
<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*
---
<sup>How did I do?
[Good](https://app.dosu.dev/response-feedback/db2c1637-8eb7-46ec-a3d5-d8c30d3818f0?feedback_type=great_response)
|
[Irrelevant](https://app.dosu.dev/response-feedback/db2c1637-8eb7-46ec-a3d5-d8c30d3818f0?feedback_type=irrelevant_answer)
|
[Incorrect](https://app.dosu.dev/response-feedback/db2c1637-8eb7-46ec-a3d5-d8c30d3818f0?feedback_type=incorrect_sources)
|
[Verbose](https://app.dosu.dev/response-feedback/db2c1637-8eb7-46ec-a3d5-d8c30d3818f0?feedback_type=too_verbose)
|
[Hallucination](https://app.dosu.dev/response-feedback/db2c1637-8eb7-46ec-a3d5-d8c30d3818f0?feedback_type=hallucination)
| [Report
🐛](https://app.dosu.dev/response-feedback/db2c1637-8eb7-46ec-a3d5-d8c30d3818f0?feedback_type=bug_report)
|
[Other](https://app.dosu.dev/response-feedback/db2c1637-8eb7-46ec-a3d5-d8c30d3818f0?feedback_type=other)</sup>
[](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github) [](https://cursor.com/link/prompt?text=Superset%206.0.0%20still%20requires%20Celery%20Beat%20for%20scheduling%20alerts%20and%20email%20reports%E2%80%94there%E2%80%99s%20no%20built-in%20replacement%20scheduler%20yet.%20The%20permission%20error%20with%20%60celerybeat-schedule%60%20in%20Docker%20happens%20because%20the%20Celery%20Beat%20process%20can%E2%80%99t%20write%20to%20the%20directory%20where%20it%20stores%20its%20schedule%20file%20%28usually%20in%20%60SUPERSET_HOME%60%2C%20which%20is%20%60/app/superset_home%60%20in%20your%20setup%29.%0A%0ATo%20fix%20this%2C%20make%20sure%3A%0A-%20The%20%60superset_home%60%20volume%20is%20a%20Docker%20named%20volume%20%28not%20a%20host-mounted%20directory%20with%20mismatched%20ownership%29.%0A-%20All%20Superset%20services%20%28web%2C%20worker%2C%20be
at%29%20share%20the%20same%20%60superset_home%60%20volume.%0A-%20The%20container%20user%20for%20the%20Beat%20service%20has%20write%20permissions%20to%20%60/app/superset_home%60.%20The%20official%20setup%20runs%20as%20%60root%60%20for%20this%20reason%E2%80%94if%20you%20use%20a%20different%20user%2C%20ensure%20the%20volume%20is%20owned%20by%20that%20user%20or%20run%20%60chown%60%20before%20starting%20Celery%20Beat.%0A%0AExample%20from%20the%20official%20compose%20file%3A%0A%60%60%60yaml%0Aservices%3A%0A%20%20superset-worker-beat%3A%0A%20%20%20%20image%3A%20apache/superset%3Alatest%0A%20%20%20%20user%3A%20root%0A%20%20%20%20volumes%3A%0A%20%20%20%20%20%20-%20superset_home%3A/app/superset_home%0A%20%20%20%20command%3A%20%5B%22/app/docker/docker-bootstrap.sh%22%2C%20%22beat%22%5D%0Avolumes%3A%0A%20%20superset_home%3A%0A%60%60%60%0ACelery%20Beat%20is%20started%20with%3A%0A%60%60%60%0Acelery%20--app%3Dsuperset.tasks.celery_app%3Aapp%20beat%20--pidfile%20/tmp/celerybeat.pid%20-l%20INFO%20-s
%20%22/app/superset_home/celerybeat-schedule%22%0A%60%60%60%0AIf%20you%20use%20a%20host-mounted%20volume%2C%20check%20its%20ownership%20and%20permissions%20inside%20the%20container.%20If%20you%20see%20permission%20errors%2C%20try%20running%20the%20container%20as%20%60root%60%20or%20fix%20the%20volume%E2%80%99s%20ownership.%0A%0AFeature%20flags%20for%20alerts/reports%20must%20be%20enabled%3A%0A%60%60%60python%0AFEATURE_FLAGS%20%3D%20%7B%0A%20%20%20%20%22ALERT_REPORTS%22%3A%20True%2C%0A%7D%0AALERT_REPORTS_NOTIFICATION_DRY_RUN%20%3D%20False%0AEMAIL_NOTIFICATIONS%20%3D%20True%0AENABLE_SCHEDULED_EMAIL_REPORTS%20%3D%20True%0A%60%60%60%0AReferences%3A%20%20%0A-%20%5BCelery%20Beat%20setup%20and%20permissions%20in%20official%20docker-compose.yml%5D%28https%3A//github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/docker-compose.yml%23L24-L264%29%20%20%0A-%20%5BCelery%20Beat%20startup%20command%20and%20schedule%20file%20location%5D%28https%3A//github.com/apache/superset/blo
b/829e4d92d91ceae4b43b1ed3b063ffe45377799c/docker/docker-bootstrap.sh%23L68-L72%29%20%20%0A-%20%5BCelery%20Beat%20is%20still%20required%20for%20scheduling%20in%20Superset%206.0.0%5D%28https%3A//github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/tasks/scheduler.py%23L43-L78%29%0A%0ALet%20me%20know%20if%20you%20need%20a%20working%20compose%20snippet%20or%20help%20troubleshooting%20volume%20permissions%21) [](https://go.dosu.dev/discord-bot) [](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/issues/37127)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]