Celery with Django is now failing on my school project

I am in my school project trying to make a website, I ran into this error and don't know how to continue

mvc_worker.1.0loi6eqoh98b@docker-6    | worker: Warm shutdown (MainProcess)
mvc_worker.2.n430upc71wra@docker-6    |  
mvc_worker.2.n430upc71wra@docker-6    |  -------------- celery@b36996e0b059 v5.6.2 (recovery)
mvc_worker.2.n430upc71wra@docker-6    | --- ***** ----- 
mvc_worker.2.n430upc71wra@docker-6    | -- ******* ---- Linux-6.12.74+deb13+1-amd64-x86_64-with-musl1 2026-05-05 12:06:06
mvc_worker.2.n430upc71wra@docker-6    | - *** --- * --- 
mvc_worker.2.n430upc71wra@docker-6    | - ** ---------- [config]
mvc_worker.2.n430upc71wra@docker-6    | - ** ---------- .> app:         proyecto:0x7fa79ae41d30
mvc_worker.2.n430upc71wra@docker-6    | - ** ---------- .> transport:   redis://redis:6379/0
mvc_worker.2.n430upc71wra@docker-6    | - ** ---------- .> results:     redis://redis:6379/0
mvc_worker.2.n430upc71wra@docker-6    | - *** --- * --- .> concurrency: 2 (prefork)
mvc_worker.2.n430upc71wra@docker-6    | -- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
mvc_worker.2.n430upc71wra@docker-6    | --- ***** ----- 
mvc_worker.2.n430upc71wra@docker-6    |  -------------- [queues]
mvc_worker.2.n430upc71wra@docker-6    |                 .> celery           exchange=celery(direct) key=celery
mvc_worker.2.n430upc71wra@docker-6    |                 
mvc_worker.2.n430upc71wra@docker-6    | 
mvc_worker.2.n430upc71wra@docker-6    | [tasks]
mvc_worker.2.n430upc71wra@docker-6    |   . tienda.tasks.enviar_correo_bienvenida
mvc_worker.2.n430upc71wra@docker-6    |   . tienda.tasks.enviar_correo_confirmacion
mvc_worker.2.n430upc71wra@docker-6    |   . tienda.tasks.enviar_correo_recuperacion
mvc_worker.2.n430upc71wra@docker-6    |   . tienda.tasks.process_purchase
mvc_worker.2.n430upc71wra@docker-6    | 
mvc_worker.2.n430upc71wra@docker-6    | [2026-05-05 12:06:06,950: INFO/MainProcess] Connected to redis://redis:6379/0
mvc_worker.2.n430upc71wra@docker-6    | [2026-05-05 12:06:06,961: INFO/MainProcess] mingle: searching for neighbors
mvc_worker.2.n430upc71wra@docker-6    | [2026-05-05 12:06:07,992: INFO/MainProcess] mingle: all alone
mvc_worker.2.n430upc71wra@docker-6    | [2026-05-05 12:06:08,066: INFO/MainProcess] celery@b36996e0b059 ready.
mvc_worker.2.ks7d5niodjfq@docker-4    |                          ^^^^^^^^^^^^^^^^^^^^^^^^
mvc_worker.2.ks7d5niodjfq@docker-4    | AttributeError: module 'proyecto.celery' has no attribute 'user_options'
mvc_worker.1.m5xkx8xasgww@docker-6    | Traceback (most recent call last):
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/bin/celery", line 6, in <module>
mvc_worker.1.m5xkx8xasgww@docker-6    |     sys.exit(main())
mvc_worker.1.m5xkx8xasgww@docker-6    |              ~~~~^^
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/celery/__main__.py", line 15, in main
mvc_worker.1.m5xkx8xasgww@docker-6    |     sys.exit(_main())
mvc_worker.1.m5xkx8xasgww@docker-6    |              ~~~~~^^
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/celery/bin/celery.py", line 227, in main
mvc_worker.1.m5xkx8xasgww@docker-6    |     return celery(auto_envvar_prefix="CELERY")
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/click/core.py", line 1485, in __call__
mvc_worker.1.m5xkx8xasgww@docker-6    |     return self.main(*args, **kwargs)
mvc_worker.1.m5xkx8xasgww@docker-6    |            ~~~~~~~~~^^^^^^^^^^^^^^^^^
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/click/core.py", line 1406, in main
mvc_worker.1.m5xkx8xasgww@docker-6    |     rv = self.invoke(ctx)
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/click/core.py", line 1870, in invoke
mvc_worker.1.m5xkx8xasgww@docker-6    |     super().invoke(ctx)
mvc_worker.1.m5xkx8xasgww@docker-6    |     ~~~~~~~~~~~~~~^^^^^
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/click/core.py", line 1269, in invoke
mvc_worker.1.m5xkx8xasgww@docker-6    |     return ctx.invoke(self.callback, **ctx.params)
mvc_worker.1.m5xkx8xasgww@docker-6    |            ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/click/core.py", line 824, in invoke
mvc_worker.1.m5xkx8xasgww@docker-6    |     return callback(*args, **kwargs)
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/click/decorators.py", line 34, in new_func
mvc_worker.1.m5xkx8xasgww@docker-6    |     return f(get_current_context(), *args, **kwargs)
mvc_worker.1.m5xkx8xasgww@docker-6    |   File "/usr/local/lib/python3.14/site-packages/celery/bin/celery.py", line 158, in celery
mvc_worker.1.m5xkx8xasgww@docker-6    |     worker.params.extend(ctx.obj.app.user_options.get('worker', []))
mvc_worker.1.m5xkx8xasgww@docker-6    |                          ^^^^^^^^^^^^^^^^^^^^^^^^
mvc_worker.1.m5xkx8xasgww@docker-6    | AttributeError: module 'proyecto.celery' has no attribute 'user_options'

Does someone knows what's the error?

my celery.py looks like this

from celery import Celery
import os
import django

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proyecto.settings')
django.setup()

app = Celery('proyecto')
app.config_from_object('django.conf:settings', namespace="CELERY")

app.user_options = {}

app.autodiscover_tasks()

Celery is running on a Docker Swarm along my other services, the connections are good as you can see (it's able to connect to Redis, etc) but any task sent to celery won't run.

From your error log, you seem to be using Python 3.14 and Celery 5.6.2. However as of today, Celery doesn't seem to have full support for Python 3.14.

Although it is stated that Celery 5.6.0 includes initial support for Python 3.14, things might still break since it's not full support. See the Change log for 5.6.0

I'd suggest you use Python 3.13 as it currently enjoys full support for Celery. See supported versions on PyPi

Вернуться на верх