This document describes the current stable version of Celery (5.1). For development docs, go here.

Change history

This document contains change notes for bugfix & new features in the 5.0.x & 5.1.x series, please see What’s new in Celery 5.0 (singularity) for an overview of what’s new in Celery 5.0. 5.1.0b1 is an incremental pre release with lots of bug fixes and some new features/enhancements. Some dependencies were upgraded to newer versions.



2021-04-02 10.25 P.M UTC+6:00


Asif Saif Uddin

  • Add sentinel_kwargs to Redis Sentinel docs.

  • Depend on the maintained python-consul2 library. (#6544).

  • Use result_chord_join_timeout instead of hardcoded default value.

  • Upgrade AzureBlockBlob storage backend to use Azure blob storage library v12 (#6580).

  • Improved integration tests.

  • pass_context for handle_preload_options decorator (#6583).

  • Makes regen less greedy (#6589).

  • Pytest worker shutdown timeout (#6588).

  • Exit celery with non zero exit value if failing (#6602).

  • Raise BackendStoreError when set value is too large for Redis.

  • Trace task optimizations are now set via Celery app instance.

  • Make trace_task_ret and fast_trace_task public.

  • reset_worker_optimizations and create_request_cls has now app as optional parameter.

  • Small refactor in exception handling of on_failure (#6633).

  • Fix for issue #5030 “Celery Result backend on Windows OS”.

  • Add store_eager_result setting so eager tasks can store result on the result backend (#6614).

  • Allow heartbeats to be sent in tests (#6632).

  • Fixed default visibility timeout note in sqs documentation.

  • Support Redis Sentinel with SSL.

  • Simulate more exhaustive delivery info in apply().

  • Start chord header tasks as soon as possible (#6576).

  • Forward shadow option for retried tasks (#6655).

  • –quiet flag now actually makes celery avoid producing logs (#6599).

  • Update “superuser privileges” check (#6600).

  • Remove unused property autoregister from the Task class (#6624).

  • fnmatch.translate() already translates globs for us. (#6668).

  • Upgrade some syntax to Python 3.6+.

  • Add azureblockblob_base_path config (#6669).

  • Fix checking expiration of X.509 certificates (#6678).

  • Drop the lzma extra.

  • Fix JSON decoding errors when using MongoDB as backend (#6675).

  • Allow configuration of RedisBackend’s health_check_interval (#6666).

  • Safeguard against schedule entry without kwargs (#6619).

  • Docs only - SQS broker - add STS support (#6693) through kombu.

  • Drop fun_accepts_kwargs backport.

  • Tasks can now have required kwargs at any order (#6699).

  • Min py-amqp 5.0.6.

  • min billiard is now

  • Minimum kombu now is5.1.0b1.

  • Numerous docs fixes.

  • Moved CI to github action.

  • Updated deployment scripts.

  • Updated docker.

  • Initial support of python 3.9 added.



2020-12-16 5.35 P.M UTC+2:00


Omer Katz

  • Ensure keys are strings when deleting results from S3 (#6537).

  • Fix a regression breaking celery –help and celery events (#6543).



2020-12-08 2.40 P.M UTC+2:00


Omer Katz

  • DummyClient of cache+memory:// backend now shares state between threads (#6524).

    This fixes a problem when using our pytest integration with the in memory result backend. Because the state wasn’t shared between threads, #6416 results in test suites hanging on result.get().



2020-12-03 6.30 P.M UTC+2:00


Omer Katz

  • Make –workdir eager for early handling (#6457).

  • When using the MongoDB backend, don’t cleanup if result_expires is 0 or None (#6462).

  • Fix passing queues into purge command (#6469).

  • Restore app.start() and app.worker_main() (#6481).

  • Detaching no longer creates an extra log file (#6426).

  • Result backend instances are now thread local to ensure thread safety (#6416).

  • Don’t upgrade click to 8.x since click-repl doesn’t support it yet.

  • Restore preload options (#6516).



2020-11-02 8.00 P.M UTC+2:00


Omer Katz

  • Fix _autodiscover_tasks_from_fixups (#6424).

  • Flush worker prints, notably the banner (#6432).

  • Breaking Change: Remove ha_policy from queue definition. (#6440)

    This argument has no effect since RabbitMQ 3.0. Therefore, We feel comfortable dropping it in a patch release.

  • Python 3.9 support (#6418).

  • Regression: When using the prefork pool, pick the fair scheduling strategy by default (#6447).

  • Preserve callbacks when replacing a task with a chain (#6189).

  • Fix max_retries override on self.retry() (#6436).

  • Raise proper error when replacing with an empty chain (#6452)



2020-10-18 1.00 P.M UTC+3:00


Omer Katz

  • Specify UTF-8 as the encoding for log files (#6357).

  • Custom headers now propagate when using the protocol 1 hybrid messages (#6374).

  • Retry creating the database schema for the database results backend in case of a race condition (#6298).

  • When using the Redis results backend, awaiting for a chord no longer hangs when setting result_expires to 0 (#6373).

  • When a user tries to specify the app as an option for the subcommand, a custom error message is displayed (#6363).

  • Fix the –without-gossip, –without-mingle, and –without-heartbeat options which now work as expected. (#6365)

  • Provide a clearer error message when the application cannot be loaded.

  • Avoid printing deprecation warnings for settings when they are loaded from Django settings (#6385).

  • Allow lowercase log levels for the –loglevel option (#6388).

  • Detaching now works as expected (#6401).

  • Restore broadcasting messages from celery control (#6400).

  • Pass back real result for single task chains (#6411).

  • Ensure group tasks a deeply serialized (#6342).

  • Fix chord element counting (#6354).

  • Restore the celery shell command (#6421).



2020-09-24 6.00 P.M UTC+3:00


Omer Katz

  • Breaking Change Remove AMQP result backend (#6360).

  • Warn when deprecated settings are used (#6353).

  • Expose retry_policy for Redis result backend (#6330).

  • Prepare Celery to support the yet to be released Python 3.9 (#6328).



2020-09-07 4.00 P.M UTC+3:00


Omer Katz

  • More cleanups of leftover Python 2 support (#6338).



2020-09-01 6.30 P.M UTC+3:00


Omer Katz

  • Bump minimum required eventlet version to 0.26.1.

  • Update Couchbase Result backend to use SDK V3.

  • Restore monkeypatching when gevent or eventlet are used.



2020-08-24 9.00 P.M UTC+3:00


Omer Katz

  • Allow to opt out of ordered group results when using the Redis result backend (#6290).

  • Breaking Change Remove the deprecated celery.utils.encoding module.



2020-08-19 8.30 P.M UTC+3:00


Omer Katz

  • Breaking Change Drop support for the Riak result backend (#5686).

  • Breaking Change pytest plugin is no longer enabled by default (#6288). Install pytest-celery to enable it.

  • Breaking Change Brand new CLI based on Click (#5718).



2020-08-05 7.15 P.M UTC+3:00


Omer Katz

  • Bump Kombu version to 5.0 (#5686).



2020-08-02 9.30 P.M UTC+3:00


Omer Katz

  • Removed most of the compatibility code that supports Python 2 (#5686).

  • Modernized code to work on Python 3.6 and above (#5686).