Environment
Self-hosted CE, observed on v1.2.3 and still present at the v1.3.1 tag (apps/api/plane/settings/common.py, CELERY_IMPORTS, ~line 318).
Symptom
The worker rejects and discards every API-activity-log task the api service enqueues:
[ERROR/MainProcess] Received unregistered task of type 'plane.bgtasks.logger_task.process_logs'.
The message has been ignored and discarded.
...
KeyError: 'plane.bgtasks.logger_task.process_logs'
On our modest single-workspace instance this error fired 20,000+ times in ~2 months (one per external-API request, enqueued by APITokenLogMiddleware), and the corresponding API activity logs are silently never written.
Root cause
plane.bgtasks.logger_task is not listed in CELERY_IMPORTS and is not imported transitively by anything the worker loads, so Celery never registers the task. The api process imports the module directly at the enqueue site, which is why it can happily .delay() tasks the worker then throws away.
plane.bgtasks.webhook_task is in a similar situation — it currently registers only via transitive imports, which is fragile (a refactor of the importing module would silently kill webhook delivery).
Fix
Add the modules explicitly:
CELERY_IMPORTS = (
# ... existing entries ...
"plane.bgtasks.logger_task",
"plane.bgtasks.webhook_task",
)
Verified on our instance: after adding these, process_logs tasks are consumed cleanly (hundreds processed, zero unregistered-task errors), webhook delivery unaffected.
Environment
Self-hosted CE, observed on v1.2.3 and still present at the v1.3.1 tag (
apps/api/plane/settings/common.py,CELERY_IMPORTS, ~line 318).Symptom
The worker rejects and discards every API-activity-log task the api service enqueues:
On our modest single-workspace instance this error fired 20,000+ times in ~2 months (one per external-API request, enqueued by
APITokenLogMiddleware), and the corresponding API activity logs are silently never written.Root cause
plane.bgtasks.logger_taskis not listed inCELERY_IMPORTSand is not imported transitively by anything the worker loads, so Celery never registers the task. The api process imports the module directly at the enqueue site, which is why it can happily.delay()tasks the worker then throws away.plane.bgtasks.webhook_taskis in a similar situation — it currently registers only via transitive imports, which is fragile (a refactor of the importing module would silently kill webhook delivery).Fix
Add the modules explicitly:
Verified on our instance: after adding these,
process_logstasks are consumed cleanly (hundreds processed, zero unregistered-task errors), webhook delivery unaffected.