This deprecated feature INTERNAL_ERROR - Feature 'transient_nonexcl_queues' is deprecated, caused celery to fall over immediately after any deployment. It appears rabbitmq automatically updated from 4.2.5 to 4.3.0 on the VMs, introducing this breaking change.
The result was that all servers stopped ingesting meshes on 23/04/2026, as celery immediately fell over. We don't currently pin the rabbitmq version on VMs (or celery in the server). See the rabbitmq 4.3.0 release notes.
Initially I opened #193 in the hope of a quick fix, this did not solve the issue. Further changes were required on the ansible to successfully deploy with a running celery.
In ansible, essentially we are pushing this issue into the future by permitting the deprecated feature:
# The newer RabbitMQ (erts-15.2.7.8 on Rocky Linux 9) disables transient
# non-exclusive queues by default, which causes Celery workers to crash on
# startup with INTERNAL_ERROR (541). Re-enable the deprecated feature so
# existing Celery clients continue to work.
- name: Permit deprecated transient_nonexcl_queues feature in rabbitmq.conf
ansible.builtin.lineinfile:
path: /etc/rabbitmq/rabbitmq.conf
line: "deprecated_features.permit.transient_nonexcl_queues = true"
regexp: '^deprecated_features\.permit\.transient_nonexcl_queues\s*='
create: yes
owner: rabbitmq
group: rabbitmq
mode: '0644'
notify:
- restart rabbitmq-server
- restart celery_polarroute
- restart celerybeat_polarroute
I've verified that this deployment method restart celery and the mesh ingestion process on bsl-polarroute-dev-s2 and then bsl-polarroute-stage-s1.
I think this leads to two tasks:
This deprecated feature
INTERNAL_ERROR - Feature 'transient_nonexcl_queues' is deprecated, caused celery to fall over immediately after any deployment. It appears rabbitmq automatically updated from 4.2.5 to 4.3.0 on the VMs, introducing this breaking change.The result was that all servers stopped ingesting meshes on 23/04/2026, as celery immediately fell over. We don't currently pin the rabbitmq version on VMs (or celery in the server). See the rabbitmq 4.3.0 release notes.
Initially I opened #193 in the hope of a quick fix, this did not solve the issue. Further changes were required on the ansible to successfully deploy with a running celery.
In ansible, essentially we are pushing this issue into the future by permitting the deprecated feature:
I've verified that this deployment method restart celery and the mesh ingestion process on
bsl-polarroute-dev-s2and thenbsl-polarroute-stage-s1.I think this leads to two tasks: