python
task_error
ai_generated
true
celery.exceptions.NotRegistered: 'app.tasks.my_task'
ID: python/celery-task-not-registered
88%Fix Rate
90%Confidence
50Evidence
2023-01-01First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 311 | active | — | — | — |
Root Cause
Celery worker doesn't know about the task. Worker code differs from caller code.
genericWorkarounds
-
95% success Restart the Celery worker after code changes — it caches task definitions
celery -A myapp worker --loglevel=info # Or with auto-reload in dev: celery -A myapp worker --loglevel=info --autoreload
Sources: https://docs.celeryq.dev/en/stable/userguide/workers.html
-
90% success Ensure autodiscover_tasks finds the task: check include/imports config
app.autodiscover_tasks(['myapp.tasks'])
Sources: https://docs.celeryq.dev/en/stable/userguide/tasks.html#automatic-naming-and-relative-imports
-
85% success Verify worker and caller import the same task module path
Verify worker and caller import the same task module path
Sources: https://docs.celeryq.dev/en/stable/userguide/tasks.html
Dead Ends
Common approaches that don't work:
-
Use send_task() to bypass registration
60% fail
send_task skips validation — typos won't be caught
Error Chain
Frequently confused with: