From 6ad02f34a35ac4bcca53e4458a84ec1d65f307c4 Mon Sep 17 00:00:00 2001 From: sanderegg <35365065+sanderegg@users.noreply.github.com> Date: Tue, 21 Oct 2025 23:33:20 +0200 Subject: [PATCH 1/2] make sure exclusive queues are not marked as durable --- packages/service-library/src/servicelib/rabbitmq/_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/service-library/src/servicelib/rabbitmq/_utils.py b/packages/service-library/src/servicelib/rabbitmq/_utils.py index 2fae056f38c5..da01514a8fbf 100644 --- a/packages/service-library/src/servicelib/rabbitmq/_utils.py +++ b/packages/service-library/src/servicelib/rabbitmq/_utils.py @@ -76,7 +76,7 @@ async def declare_queue( if arguments is not None: default_arguments.update(arguments) queue_parameters: dict[str, Any] = { - "durable": True, + "durable": not exclusive_queue, "exclusive": exclusive_queue, "arguments": default_arguments, "name": f"{get_rabbitmq_client_unique_name(client_name)}_{queue_name}_exclusive", From c7e8725156bc40a561c80952e1e0769b46715014 Mon Sep 17 00:00:00 2001 From: sanderegg <35365065+sanderegg@users.noreply.github.com> Date: Wed, 22 Oct 2025 09:08:52 +0200 Subject: [PATCH 2/2] @YuryHrytsuk review: remove unnecessary check --- .../src/servicelib/rabbitmq/_utils.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/packages/service-library/src/servicelib/rabbitmq/_utils.py b/packages/service-library/src/servicelib/rabbitmq/_utils.py index da01514a8fbf..9744bf358e78 100644 --- a/packages/service-library/src/servicelib/rabbitmq/_utils.py +++ b/packages/service-library/src/servicelib/rabbitmq/_utils.py @@ -85,19 +85,6 @@ async def declare_queue( # NOTE: setting a name will ensure multiple instance will take their data here queue_parameters |= {"name": queue_name} - # avoids deprecated `transient_nonexcl_queues` warning in RabbitMQ - if ( - queue_parameters.get("durable", False) is False - and queue_parameters.get("exclusive", False) is False - ): - msg = ( - "Queue must be `durable` or `exclusive`, but not both. " - "This is to avoid the `transient_nonexcl_queues` warning. " - "NOTE: if both `durable` and `exclusive` are missing they are considered False. " - f"{queue_parameters=}" - ) - raise ValueError(msg) - # NOTE: if below line raises something similar to ``ChannelPreconditionFailed: PRECONDITION_FAILED`` # most likely someone changed the signature of the queues (parameters etc...) # Safest way to deal with it: