Skip to content

[bug]: celery worker discards every API-request log task — plane.bgtasks.logger_task missing from CELERY_IMPORTS #9357

Description

@Jacobabergam

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions