NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #453 most downloaded on PyPI
Distributed Task Queue.
Last release 12 days ago
22 Sep 2026
Release timing varies
gaps range from 2 weeks to 6 months
Some releases are documented
notes for 27 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
17 years old
225 releases · first in 2009
Remove deprecated args from redis get_connection call by @JaeHyuckSa in #10036
__class_getitem__ to generic classes by @brianhelba in #10038TypeError during exception handling by @ChickenBenny in #10178reconnect_on_error to BaseResultConsumer by @ChickenBenny in #10189engine_callback to database backend SessionManager by @avolant in #10135.delay() usage with signatures in the user guide section by @kittywaresz in #10258patching.modules after module test fixture leaks across test cases by @treszkai in #10256Note truncated.
One column per quarter.
Remove deprecated args from redis get_connection call by @JaeHyuckSa in #10036
TypeError during exception handling by @ChickenBenny in #10178reconnect_on_error to BaseResultConsumer by @ChickenBenny in #10189Full Changelog: v5.6.2...v5.6.3
release-date : 2026-03-26 release-by : Tomer Nosrati
Fix Django worker recursion bug + defensive checks for pool_cls.module (#10048)
Docs: Update user_preload_options example to use click. (#10056)
Fix invalid configuration key “bootstrap_servers” in Kafka demo (#10060)
Fix broken images on PyPI page (#10066)
Remove broken reference. (#10071)
Removed –dist=loadscope from smoke tests (#10073)
Docs: Clarify task_retry signal args may be None (#10076)
Update example for Django (#10081)
Make tests compatible with pymongo >= 4.16 (#10074)
fix: source install of cassandra-driver (#10105)
fix: register task cross-reference role in Sphinx extension (#10100)
fix: avoid cycle detection in native delayed delivery (#10095)
fix(asynpool): avoid AttributeError when proc lacks _sentinel_poll (#10086)
fix dusk_astronomical horizon sign (+18 -> -18) (#10121)
Fix/10106 onupdate col use lambda func (#10108)
Fix warm shutdown RuntimeError with eventlet>=0.37.0 (#10083) (#10123)
Fix 10109 db backend connection health (#10124)
Database Backend filter unsupport sql engine arguments with nullpool #7355 (#10134)
fix(beat): correct argument order in Service.reduce (#10137)
ci: declare explicit read-only token permissions in workflow jobs (#10139)
chore: ‘boto3to’ to ‘boto3 to’ (#10133)
Database Backend: Add missing index on date_done (Fixes #10097) (#10098)
docs: fix typo in CONTRIBUTING.rst (#10141)
Refer to Flower / Prometheus for monitoring (#10140)
docs: remove duplicated words in broker and routing docs (#10146)
docs: fix stale version reference and grammar in README (#10145)
docs: fix wording in Celery 5.3 worker pool notes (#10149)
docs: fix duplicated wording in 3.1 changelog entry (#10152)
docs: fix changelog typo in context manager wording (#10144)
Fix/10096 worker fails to reconnect after redis failover (#10151)
Improve on_after_finalize signal documentation (#10155)
Add non-commutative example to clarify partial arg ordering in canvas docs (#10157)
Remove redundant test_isa_mapping test (fixes #10077) (#10103)
Upgrade pytest-celery to >=1.3.0 and adopt PYTEST_CELERY_PKG build arg (#10162)
Remove deprecated args from redis get_connection call (#10036)
Fix #6912 rpc backend reconnection error (#10179)
Fix NameError with TYPE_CHECKING annotations on Python 3.14+ (PEP 649) (#10165)
docs: Add elaboration on prefetch multiplier settings (worker_prefetch_multiplier) and worker_eta_task_limit (#10181)
Fix O(K²) message bloat in a chain of chords (#10171)
Fix mock connection interfaces to prevent TypeError during exception handling (#10178)
fix(trace): dispatch chain/callbacks on dedup fast-path for redelivered tasks (#10159)
Extract reconnect_on_error to BaseResultConsumer (#10189)
pep 649 (#10187)
Fix#9722 friendly status errors for CLI (#10190)
docs: clarify after_return behavior for retried tasks (#10192)
Add compression header to message protocol docs (#10156)
docs: fix duplicated word in bootsteps comment (#10153)
Remove outdated autoreloader section from extending docs (#10154)
Fix: prioritize request ignore_result over task definition (#10184)
fix: clear the timer while catch the exception (#10218)
Prepare for release: v5.6.3 (#10221)
Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by @bruunotrindade in #10045
Full Changelog: v5.6.1...v5.6.2
Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string (#10045)
Bugfix: Revoked tasks now immediately update backend status to REVOKED (#9869)
Prepare for release: v5.6.2 (#10049)
Fix Redis Sentinel ACL authentication support by @anthonykuzmich7 in #10013
result_extended vs periodic task metadata and show headers["periodic_task_name"] example by @SpaceShaman in #10030Full Changelog: v5.6.0...v5.6.1
Fix Redis Sentinel ACL authentication support (#10013)
Fix: Broker heartbeats not sent during graceful shutdown (#9986)
docs #5410 -- Document confirm_publish broker transport option (#10016)
close DB pools only in prefork mode (#10020)
Fix: Avoid unnecessary Django database connection creation during cleanup (#10015)
reliable prefork detection (#10023)
better coverage (#10029)
Docs: clarify result_extended vs periodic task metadata and show headers["periodic_task_name"] example (#10030)
Stop importing pytest_subtests (#10032)
Only use exceptiongroup backport for Python < 3.11 (#10033)
Prepare for release: v5.6.1 (#10037)
Security Fix: Broker Credential Leak Prevention
Celery v5.6.0 is now available.
See What's new in Celery 5.6 for a complete overview or read the main highlights below.
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.
pycurl from urllib3The 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 #9620.
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 #9997.
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 #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 #9806.
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:
app.conf.worker_eta_task_limit = 1000Contributed by @sashu2310 in #9853.
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 queuesExample usage:
app.conf.task_create_missing_queue_type = 'quorum'Contributed by @ghirailghiro in #9815.
Full Changelog: v5.6.0rc2...v5.6.0
Celery v5.6.0 is now available.
See whatsnew-5.6 for a complete overview or read the main highlights below.
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.
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:
Processing throughput dropped from ~100 tasks/sec to ~3/sec in some environments
UnknownOperationException errors causing container crash loops
Silent message processing failures with no error logs
Users of the SQS transport must ensure pycurl is installed. If you removed pycurl after upgrading to Celery 5.5.0, you will need to reinstall it.
Contributed by @auvipy in #9620.
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 #9997.
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 #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 #9806.
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:
app.conf.worker_eta_task_limit = 1000
Contributed by @sashu2310 in #9853.
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:
app.conf.task_create_missing_queue_type = 'quorum'
Contributed by @ghirailghiro in #9815.
Prepare for release: v5.6.0 (#10010)
Celery v5.6.0 Release Candidate 2 is now available for testing. Please help us test this version and report any issues.
Celery v5.6.0 Release Candidate 2 is now available for testing.
Please help us test this version and report any issues.
Full Changelog: v5.6.0rc1...v5.6.0rc2
Celery v5.6.0 Release Candidate 2 is now available for testing. Please help us test this version and report any issues.
Remove Python 4.0 version condition for pytest dependencies (#9993)
Sanitize broker URL in delayed delivery logs (avoid leaking credentials) (#9997)
Don't fail task on timeout during cold shutdown (#9678)
Add Py39-314t to CI (#9999)
asynpool: Don't return from inside a finally block (#10000)
Prepare for (pre) release: v5.6.0rc2 (#10005)
Celery v5.6.0 Release Candidate 1 is now available for testing. Please help us test this version and report any issues.
Celery v5.6.0 Release Candidate 1 is now available for testing.
Please help us test this version and report any issues.
Full Changelog: v5.6.0b2...v5.6.0rc1
Celery v5.6.0 Release Candidate 1 is now available for testing. Please help us test this version and report any issues.
Add support for Django Connection pool (#9953)
Pin tblib to ==3.1.0 (#9967)
fix(worker): continue to attempt to bind other queues after a native delayed delivery binding failure has occurred (#9959)
Handle UnpicklingError in persistent scheduler initialization (#9952)
Bug Fix: Nested Chords Fail When Using django-celery-results with a Redis Backend (#9950)
Add support pymongo 4.12 (#9665)
Make tests compatible with pymongo >= 4.14 (#9968)
tblib updated from 3.1.0 to 3.2.0 (#9970)
Fix remaining function typing and docstring (#9971)
Fix regex pattern in version parsing and remove duplicate entry in __all__ (#9978)
Bump Kombu to v5.6.0 and removed <5.7 limit on kombu (#9981)
Prepare for (pre) release: v5.6.0rc1 (#9982)
Celery v5.6.0 Beta 2 is now available for testing. Please help us test this version and report any issues.
Celery v5.6.0 Beta 2 is now available for testing.
Please help us test this version and report any issues.
Full Changelog: v5.6.0b1...v5.6.0b2
Celery v5.6.0 Beta 2 is now available for testing. Please help us test this version and report any issues.
GitHub Actions: Test on Python 3.14 release candidate 2 (#9891)
Update pypy to python 3.11 (#9896)
Feature: Add support credential_provider to Redis Backend (#9879)
Celery.timezone: try tzlocal.get_localzone() before using LocalTimezone (#9862)
Run integration tests on Python 3.14 (#9903)
Fix arithmetic overflow for MSSQL result backend (#9904)
Add documentation for task_id param for apply_async function (#9906)
Support redis client name (#9900)
Bump Kombu to v5.6.0rc1 (#9918)
Fix broker connection retry attempt counter in the error log (#9911)
fix: restrict disable-prefetch feature to Redis brokers only (#9919)
fix(): preserve group order in replaced signature (#9910)
Remove Python 3.8 from CI workflow (#9930)
Update default Python versions in integration tests (#9931)
Update tox.ini to remove Python 3.8 (#9932)
Remove Python 3.8 from Dockerfile (#9933)
Update Python version requirement to 3.9 (#9935)
Update pypy version from 3.10 to 3.11 in Dockerfile (#9934)
Flake8 fixes (#9955)
Remove test-pypy3.txt from Dockerfile dependencies (#9939)
Remove backports.zoneinfo for Python 3.9 compatibility (#9956)
Update pytest-cov version for Python compatibility (#9957)
Update pytest-rerunfailures and pre-commit versions (#9958)
Prepare for (pre) release: v5.6.0b2 (#9938)
Update setup.py to fix deprecation warning by @auvipy in #9771
Celery v5.6.0 Beta 1 is now available for testing.
Please help us test this version and report any issues.
pycurl" by @auvipy in #9620AsyncResult.forget() with couchdb backend method raises TypeError: a bytes-like object is required, not 'str' by @temaxuck in #9865.github/copilot-instructions.md for GitHub Copilot by @Nusnus in #9874Full Changelog: v5.5.3...v5.6.0b1
Celery v5.6.0 Beta 1 is now available for testing. Please help us test this version and report any issues.
docs: mention of json serializer recursive reference message size blowup (#5000) (#9743)
docs: typo in canvas.rst (#9744)
Makes _on_retry return a float as required to be used as errback on retry_over_time (#9741)
Update canvas.rst doc calculation order for callback (#9758)
Updated Blacksmith logo (#9763)
Made the Sponsors logos link to their website (#9764)
add missing cloudamqp logo (#9767)
Improve sponsor visibility (#9768)
fix: (#9773) task_id must not be empty with chain as body of a chord (#9774)
Update setup.py to fix deprecation warning (#9771)
Adds integration test for chord_unlock bug when routed to quorum/topic queue (#9766)
Add xfail test for default queue/exchange fallback ignoring task_default_* settings (#9765)
Add xfail test for RabbitMQ quorum queue global QoS race condition (#9770)
fix: (#8786) time out when chord header fails with group body (#9788)
Fix #9738 : Add root_id and parent_id to .apply() (#9784)
Replace DelayedDelivery connection creation to use context manager (#9793)
Fix #9794: Pydantic integration fails with __future__.annotations. (#9795)
add go and rust implementation in docs (#9800)
Fix memory leak in exception handling (Issue #8882) (#9799)
Fix handlers docs (Issue #9787) (#9804)
Remove importlib_metadata leftovers (#9791)
Update timeout minutes for smoke tests CI (#9807)
Revert "Remove dependency on pycurl" (#9620)
Add Blacksmith Docker layer caching to all Docker builds (#9840)
Bump Kombu to v5.6.0b1 (#9839)
Disable pytest-xdist for smoke tests and increase retries (CI ONLY) (#9842)
Fix Python 3.13 compatibility in events dumper (#9826)
Dockerfile Build Optimizations (#9733)
Migrated from useblacksmith/build-push-action@v1 to useblacksmith/setup-docker-builder@v1 in the CI (#9846)
Remove incorrect example (#9854)
Revert "Use Django DB max age connection setting" (#9824)
Fix pending_result memory leak (#9806)
Update python-package.yml (#9856)
Bump Kombu to v5.6.0b2 (#9858)
Refactor integration and smoke tests CI (#9855)
Fix AsyncResult.forget() with couchdb backend method raises TypeError: a bytes-like object is required, not 'str' (#9865)
Improve Docs for SQS Authentication (#9868)
Added .github/copilot-instructions.md for GitHub Copilot (#9874)
misc: credit removal (#9877)
Choose queue type and exchange type when creating missing queues (fix #9671) (#9815)
fix: prevent celery from hanging due to spawned greenlet errors in greenlet drainers (#9371)
Feature/disable prefetch fixes (#9863)
Add worker_eta_task_limit configuration to manage ETA task memory usage (#9853)
Update runner version in Docker workflow (#9884)
Prepare for (pre) release: v5.6.0b1 (#9890)
make the tests run on python 3.13 for gcs backend by @auvipy in #9677
Full Changelog: v5.5.2...v5.5.3
make the tests run on python 3.13 for gcs backend (#9677)
Added DeepWiki to README (#9683)
Limit redis to <=v5.2.1 to match Kombu (#9693)
Use EX_OK instead of literal zero (#9684)
Make wheel metadata reproducible (#9687)
let celery install from kombu dependencies for better align (#9696)
Fix stamping documentation to clarify stamped_headers key is optional in visitor methods (#9697)
Support apply_async without queue argument on quorum queues (#9686)
Updated rabbitmq doc about using quorum queues with task routes (#9707)
Add: Dumper Unit Test (#9711)
Add unit test for event.group_from (#9709)
refactor: add beat_cron_starting_deadline documentation warning (#9712)
fix: resolve issue #9569 by supporting distinct broker transport options for workers (#9695)
Fixes issue with retry callback arguments in DelayedDelivery (#9708)
get_exchange-unit-test (#9710)
ISSUE-9704: Update documentation of result_expires, filesystem backend is supported (#9716)
update to blacksmith ubuntu 24.04 (#9717)
Added unit tests for celery.utils.iso8601 (#9725)
Update introduction.rst docs (#9728)
Prepare for release: v5.5.3 (#9732)
Fix calculating remaining time across DST changes by @imrivera in #9669
setup_logger from COMPAT_MODULES by @rconradharris in #9668Full Changelog: v5.5.1...v5.5.2
Fix calculating remaining time across DST changes (#9669)
Remove setup_logger from COMPAT_MODULES (#9668)
Fix mongodb bullet and fix github links in contributions section (#9672)
Prepare for release: v5.5.2 (#9675)
Fixed "AttributeError: list object has no attribute strip" with quorum queues and failover brokers by @Nusnus in https://github.com/celery/celery/pull
Full Changelog: https://github.com/celery/celery/compare/v5.5.0...v5.5.1
Fixed "AttributeError: list object has no attribute strip" with quorum queues and failover brokers (#9657)
Prepare for release: v5.5.1 (#9660)
Your coding agent can read these notes before it upgrades. Set up the MCP server →