Download Latest Version v5.6.0 source code.tar.gz (1.7 MB)
Email in envelope

Get an email when there's a new version of Celery

Home / v5.6.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-11-30 3.1 kB
v5.6.0 source code.tar.gz 2025-11-30 1.7 MB
v5.6.0 source code.zip 2025-11-30 2.1 MB
Totals: 3 Items   3.8 MB 1

Celery v5.6.0 is now available.

Key Highlights

See What's new in Celery 5.6 for a complete overview or read the main highlights below.

Python 3.9 Minimum Version

Celery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.

Additionally, this release includes initial support for Python 3.14.

SQS: Reverted to pycurl from urllib3

The switch from pycurl to urllib3 for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.

Contributed by @auvipy in https://github.com/celery/celery/pull/9620.

Security Fix: Broker Credential Leak Prevention

Fixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.

Contributed by @giancarloromeo in https://github.com/celery/celery/pull/9997.

Memory Leak Fixes

Two significant memory leaks have been fixed in this release:

Exception Handling Memory Leak: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.

Contributed by @jaiganeshs21 in https://github.com/celery/celery/pull/9799.

Pending Result Memory Leak: Fixed a memory leak where AsyncResult subscriptions were not being cleaned up when results were forgotten.

Contributed by @tsoos99dev in https://github.com/celery/celery/pull/9806.

ETA Task Memory Limit

New configuration option worker_eta_task_limit to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.

Example usage:

:::python
app.conf.worker_eta_task_limit = 1000

Contributed by @sashu2310 in https://github.com/celery/celery/pull/9853.

Queue Type Selection for Auto-created Queues

New configuration options allow specifying the queue type and exchange type when Celery auto-creates missing queues. This is particularly useful for RabbitMQ users who want to use quorum queues with auto-created queues.

Configuration options:

  • task_create_missing_queue_type: Sets the queue type for auto-created queues (e.g., quorum, classic)
  • task_create_missing_queue_exchange_type: Sets the exchange type for auto-created queues

Example usage:

:::python
app.conf.task_create_missing_queue_type = 'quorum'

Contributed by @ghirailghiro in https://github.com/celery/celery/pull/9815.

What's Changed

Full Changelog: https://github.com/celery/celery/compare/v5.6.0rc2...v5.6.0

Source: README.md, updated 2025-11-30