Under which category would you file this issue?
Airflow Core
Apache Airflow version
3.3.0
What happened and how to reproduce it?
With CeleryExecutor and a RabbitMQ 4.x broker, RabbitMQ reports usage of the
deprecated feature transient_nonexcl_queues:
Deprecated features are being used ... transient_nonexcl_queues
The offending queue is Celery's pidbox (remote-control mailbox), which kombu
declares as non-durable + non-exclusive — exactly the queue shape RabbitMQ 4.x
deprecates and plans to remove in a future major version.
Task queues themselves are fine (they can be quorum), but a quorum queue must be
durable, so the pidbox cannot be converted via configuration — it's a kombu-side
declaration.
What you think should happen instead?
The bundled/pinned kombu version should include the pidbox durability fix so the
deprecation is not triggered out of the box.
The fix landed in kombu 5.7.0 (kombu#2237 → PR celery/kombu#2531: pidbox declared
durable). However, Airflow's constraints still pin kombu 5.6.2:
| Constraints |
kombu |
celery |
amqp |
| constraints-3.2.2 (py3.12) |
5.6.2 |
5.6.3 |
5.3.1 |
| constraints-3.3.0 (py3.12) |
5.6.2 |
5.6.3 |
5.3.1 |
Request: allow/bump kombu >= 5.7.0 (via apache-airflow-providers-celery
requirements / constraints) so the RabbitMQ transient_nonexcl_queues deprecation is
resolved without a workaround.
Operating System
No response
Deployment
None
Apache Airflow Provider(s)
No response
Versions of Apache Airflow Providers
No response
Official Helm Chart version
Not Applicable
Kubernetes Version
No response
Helm Chart configuration
No response
Docker Image customizations
No response
Anything else?
How to reproduce
- Deploy Airflow with
CeleryExecutor against a RabbitMQ 4.x broker.
- Start scheduler + a Celery worker (remote control enabled — the default).
- Observe RabbitMQ logs (or
rabbitmqctl list_deprecated_features --used): the
transient_nonexcl_queues deprecated feature is flagged as used, caused by the
*.pidbox queue.
Workarounds (for reference)
- RabbitMQ:
deprecated_features.permit.transient_nonexcl_queues = true (temporary).
- Celery:
worker_enable_remote_control = False (drops pidbox; disables remote
control / Flower inspect / revoke).
Neither is a real fix — kombu >= 5.7.0 is.
References
Are you willing to submit PR?
Code of Conduct
Under which category would you file this issue?
Airflow Core
Apache Airflow version
3.3.0
What happened and how to reproduce it?
With
CeleryExecutorand a RabbitMQ 4.x broker, RabbitMQ reports usage of thedeprecated feature
transient_nonexcl_queues:The offending queue is Celery's pidbox (remote-control mailbox), which kombu
declares as non-durable + non-exclusive — exactly the queue shape RabbitMQ 4.x
deprecates and plans to remove in a future major version.
Task queues themselves are fine (they can be quorum), but a quorum queue must be
durable, so the pidbox cannot be converted via configuration — it's a kombu-side
declaration.
What you think should happen instead?
The bundled/pinned kombu version should include the pidbox durability fix so the
deprecation is not triggered out of the box.
The fix landed in kombu 5.7.0 (kombu#2237 → PR celery/kombu#2531: pidbox declared
durable). However, Airflow's constraints still pin kombu 5.6.2:
Request: allow/bump kombu >= 5.7.0 (via
apache-airflow-providers-celeryrequirements / constraints) so the RabbitMQ
transient_nonexcl_queuesdeprecation isresolved without a workaround.
Operating System
No response
Deployment
None
Apache Airflow Provider(s)
No response
Versions of Apache Airflow Providers
No response
Official Helm Chart version
Not Applicable
Kubernetes Version
No response
Helm Chart configuration
No response
Docker Image customizations
No response
Anything else?
How to reproduce
CeleryExecutoragainst a RabbitMQ 4.x broker.rabbitmqctl list_deprecated_features --used): thetransient_nonexcl_queuesdeprecated feature is flagged as used, caused by the*.pidboxqueue.Workarounds (for reference)
deprecated_features.permit.transient_nonexcl_queues = true(temporary).worker_enable_remote_control = False(drops pidbox; disables remotecontrol / Flower inspect / revoke).
Neither is a real fix — kombu >= 5.7.0 is.
References
Are you willing to submit PR?
Code of Conduct