[ 
https://issues.apache.org/jira/browse/CAMEL-24173?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Weiss updated CAMEL-24173:
----------------------------------
    Summary: camel-spring-rabbitmq: Cannot connect to latest rabbitmq server 
with autoDeclare=true due to deprecated feature  (was: camel-spring-rabbitmq: 
Cannot connect to latest rabbitmq server due to deprecated feature)

> camel-spring-rabbitmq: Cannot connect to latest rabbitmq server with 
> autoDeclare=true due to deprecated feature
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24173
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24173
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-spring-rabbitmq
>    Affects Versions: 4.18.0, 4.21.0
>            Reporter: Michael Weiss
>            Priority: Minor
>
> I usually use `autoDeclare: true` when connecting to RabbitMQ. Example:
> {code:yaml}
> - route:     id: route-8723
>     from:       id: from-3034
>       uri: spring-rabbitmq
>       parameters:         autoDeclare: true
>         deadLetterExchange: CamelPlayground.RabbitMqDemo.deadletter
>         deadLetterQueue: CamelPlayground.RabbitMqDemo.OffRamp.deadletter
>         deadLetterRoutingKey: OffRamp
>         exchangeName: CamelPlayground.RabbitMqDemo
>         queues: CamelPlayground.RabbitMqDemo.OffRamp
>         routingKey: OffRamp
>       steps:         - log:             id: log-3784
>             message: ${body}
> {code}
>  
> It seems Camel uses a deprecated feature called 
> `{{{}transient_nonexcl_queues{}}}` which was removed from rabbitmq server in 
> 4.3.0. According to AI this is because Camel by default sets 
> {{arg.queue.durable=false}} which does not seem to be possible due to this 
> removed feature anymore. Shouldn't we set {{arg.queue.durable=true}} by 
> default?
> Error log:
> {noformat}
> 2026-07-16 11:53:08.815  INFO 334 --- [           main] 
> org.apache.camel.main.MainSupport        : Apache Camel (JBang) 4.21.0 is 
> starting
> 2026-07-16 11:53:08.943  INFO 334 --- [           main] 
> org.apache.camel.main.MainSupport        : Running Linux 6.8.0-134-generic 
> (amd64)
> 2026-07-16 11:53:08.943  INFO 334 --- [           main] 
> org.apache.camel.main.MainSupport        : Using Java 21.0.10 (OpenJDK 64-Bit 
> Server VM) with PID 334
> 2026-07-16 11:53:08.943  INFO 334 --- [           main] 
> org.apache.camel.main.MainSupport        : Started by ubuntu in 
> /home/ubuntu/integrations
> 2026-07-16 11:53:13.635  INFO 334 --- [           main] 
> .main.download.MavenDependencyDownloader : Downloaded: 
> org.apache.camel:camel-kubernetes:4.21.0 (took: 4s687ms) from: 
> central@https://repo1.maven.org/maven2
> 2026-07-16 11:53:13.702  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    : Properties location: 
> file:./application-dev.properties,file:./application.properties
> 2026-07-16 11:53:14.943  INFO 334 --- [           main] 
> .main.download.MavenDependencyDownloader : Downloaded: 
> org.apache.camel:camel-spring-rabbitmq:4.21.0 (took: 1s164ms) from: 
> central@https://repo1.maven.org/maven2
> 2026-07-16 11:53:15.170  INFO 334 --- [           main] 
> rnetes.properties.BasePropertiesFunction : KubernetesClient using masterUrl: 
> https://10.96.0.1:443/ with namespace: camel-dev
> 2026-07-16 11:53:15.370  INFO 334 --- [           main] 
> org.apache.camel.main.ProfileConfigurer  : The application is starting with 
> profile: dev
> 2026-07-16 11:53:17.444  INFO 334 --- [           main] 
> .main.download.MavenDependencyDownloader : Downloaded: 
> org.apache.camel:camel-micrometer-prometheus:4.21.0 (took: 2s52ms) from: 
> central@https://repo1.maven.org/maven2
> 2026-07-16 11:53:17.506  INFO 334 --- [           main] 
> crometer.prometheus.MicrometerPrometheus : Registered 3 MeterBinders: 
> ProcessorMetrics, JvmInfoMetrics, FileDescriptorMetrics
> 2026-07-16 11:53:17.528  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    : Auto-configuration summary
> 2026-07-16 11:53:17.528  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    :     [application-dev.properties]   
> camel.main.name = route
> 2026-07-16 11:53:17.528  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    :     [application-dev.properties]   
> camel.management.metricsEnabled = true
> 2026-07-16 11:53:17.528  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    :     [application-dev.properties]   
> camel.management.enabled = true
> 2026-07-16 11:53:17.529  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    :     [application-dev.properties]   
> camel.metrics.enabled = true
> 2026-07-16 11:53:17.529  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    :     [application-dev.properties]   
> camel.metrics.enableMessageHistory = true
> 2026-07-16 11:53:17.529  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    :     [application-dev.properties]   
> camel.metrics.binders = processor,jvm-info,file-descriptor
> 2026-07-16 11:53:17.529  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    :     [application-dev.properties]   
> camel.trace.enabled = false
> 2026-07-16 11:53:17.529  INFO 334 --- [           main] 
> org.apache.camel.main.BaseMainSupport    :     [application-dev.properties]   
> camel.trace.standby = false
> 2026-07-16 11:53:17.672  INFO 334 --- [           main] 
> he.camel.cli.connector.LocalCliConnector : Camel CLI connector enabled
> 2026-07-16 11:53:17.696  INFO 334 --- [           main] 
> e.camel.support.LifecycleStrategySupport : Autowired property: 
> connectionFactory on component: spring-rabbitmq as exactly one instance of 
> type: org.springframework.amqp.rabbit.connection.ConnectionFactory 
> (org.springframework.amqp.rabbit.connection.CachingConnectionFactory) found 
> in the registry
> 2026-07-16 11:53:17.748  INFO 334 --- [           main] 
> e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.21.0 (route) is 
> starting
> 2026-07-16 11:53:17.805  INFO 334 --- [           main] 
> vertx.core.spi.resolver.ResolverProvider : Using the default address resolver 
> as the dns resolver could not be loaded
> 2026-07-16 11:53:17.820  INFO 334 --- [ntloop-thread-0] 
> tform.http.vertx.VertxPlatformHttpServer : Vert.x HttpServer started on 
> 0.0.0.0:8080
> 2026-07-16 11:53:17.827  INFO 334 --- [           main] 
> crometer.prometheus.MicrometerPrometheus : MicrometerPrometheus enabled with 
> HTTP scraping on management port 8080 on path /observe/metrics
> 2026-07-16 11:53:17.849  INFO 334 --- [           main] 
> bbit.connection.CachingConnectionFactory : Attempting to connect to: 
> rabbitmq:5672
> 2026-07-16 11:53:17.875  INFO 334 --- [           main] 
> bbit.connection.CachingConnectionFactory : Created new connection: 
> SpringAMQP#6885ed19:0/SimpleConnection@641bc9a8 
> [delegate=amqp://[email protected]:5672/, localPort=54780]
> 2026-07-16 11:53:17.902  INFO 334 --- [           main] 
> nent.springrabbit.SpringRabbitMQEndpoint : Auto-declaring durable 
> DeadLetterExchange: CamelPlayground.RabbitMqDemo.deadletter routingKey: 
> OffRamp
> 2026-07-16 11:53:17.903  INFO 334 --- [           main] 
> nent.springrabbit.SpringRabbitMQEndpoint : Auto-declaring a non-durable, 
> auto-delete, or exclusive Queue 
> (CamelPlayground.RabbitMqDemo.OffRamp)durable:false, auto-delete:false, 
> exclusive:false. It will be redeclared if the broker stops and is restarted 
> while the connection factory is alive, but all messages will be lost.
> 2026-07-16 11:53:17.906  INFO 334 --- [           main] 
> bbit.connection.CachingConnectionFactory : Attempting to connect to: 
> rabbitmq:5672
> 2026-07-16 11:53:17.907  WARN 334 --- [99.114.190:5672] 
> mq.client.impl.ForgivingExceptionHandler : An unexpected connection driver 
> error occurred (Exception message: Connection reset)
> 2026-07-16 11:53:17.910  INFO 334 --- [           main] 
> bbit.connection.CachingConnectionFactory : Created new connection: 
> SpringAMQP#6885ed19:1/SimpleConnection@7646c9f5 
> [delegate=amqp://[email protected]:5672/, localPort=54792]
> 2026-07-16 11:53:17.912 ERROR 334 --- [           main] 
> e.camel.impl.engine.AbstractCamelContext : Error starting CamelContext 
> (route) due to exception thrown: java.io.IOException
> org.springframework.amqp.AmqpIOException: java.io.IOException
>         at 
> org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:69)
>         at 
> org.springframework.amqp.rabbit.connection.RabbitAccessor.convertRabbitAccessException(RabbitAccessor.java:117)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2259)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2211)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2191)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.declareQueue(RabbitAdmin.java:304)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQEndpoint.declareElements(SpringRabbitMQEndpoint.java:793)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQEndpoint.declareElements(SpringRabbitMQEndpoint.java:691)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQConsumer.prepareAndStartListenerContainer(SpringRabbitMQConsumer.java:152)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQConsumer.doStart(SpringRabbitMQConsumer.java:105)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:129)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3608)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRouteConsumers(InternalRouteStartupManager.java:425)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartRouteConsumers(InternalRouteStartupManager.java:341)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:217)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.lambda$doStartOrResumeRoutes$0(InternalRouteStartupManager.java:129)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.lambda$startingRoutes$0(AbstractCamelContext.java:1165)
>         at 
> org.apache.camel.util.concurrent.ContextValueFactory.where(ContextValueFactory.java:65)
>         at 
> org.apache.camel.util.concurrent.ContextValue.where(ContextValue.java:174)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.startingRoutes(AbstractCamelContext.java:1163)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:117)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3210)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2812)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2767)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2347)
>         at 
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:214)
>         at org.apache.camel.main.KameletMain.doStart(KameletMain.java:413)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1945)
>         at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:1253)
>         at org.apache.camel.dsl.jbang.core.commands.Run.doCall(Run.java:365)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:73)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:39)
>         at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
>         at picocli.CommandLine.access$1500(CommandLine.java:148)
>         at 
> picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
>         at 
> picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
>         at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
>         at picocli.CommandLine.execute(CommandLine.java:2174)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.execute(CamelJBangMain.java:245)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:86)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:82)
>         at main.CamelJBang.main(CamelJBang.java:37)
> Caused by: java.io.IOException
>         at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140)
>         at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136)
>         at 
> com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158)
>         at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:1013)
>         at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:49)
>         at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>         at 
> org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1221)
>         at jdk.proxy3/jdk.proxy3.$Proxy68.queueDeclare(Unknown Source)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.declareQueues(RabbitAdmin.java:862)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.lambda$declareQueue$0(RabbitAdmin.java:305)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.invokeAction(RabbitTemplate.java:2291)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2253)
>         ... 44 more
> Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; 
> protocol method: #method<connection.close>(reply-code=541, 
> reply-text=INTERNAL_ERROR - Feature `transient_nonexcl_queues` is deprecated.
> By default, this feature is not permitted anymore.
> The feature will be removed from a future major RabbitMQ version, regardless 
> of the configuration; actual version to be determined.
> To..., class-id=50, method-id=10)
>         at 
> com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
>         at 
> com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
>         at 
> com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552)
>         at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316)
>         at 
> com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152)
>         ... 54 more
> 2026-07-16 11:53:17.915  INFO 334 --- [           main] 
> e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.21.0 (route) is 
> shutting down (timeout:10s)
> 2026-07-16 11:53:17.917  INFO 334 --- [           main] 
> e.camel.impl.engine.AbstractCamelContext : Routes stopped (total:1)
> 2026-07-16 11:53:17.917  INFO 334 --- [           main] 
> e.camel.impl.engine.AbstractCamelContext :     Stopped route-8723 
> (spring-rabbitmq://CamelPlayground.RabbitMqDemo)
> 2026-07-16 11:53:17.921  INFO 334 --- [ntloop-thread-0] 
> tform.http.vertx.VertxPlatformHttpServer : Vert.x HttpServer stopped
> 2026-07-16 11:53:17.931  INFO 334 --- [           main] 
> e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.21.0 (route) 
> shutdown in 16ms (uptime:0s)
> 2026-07-16 11:53:17.931 ERROR 334 --- [           main] 
> org.apache.camel.main.MainSupport        : Error starting Camel: 
> org.springframework.amqp.AmqpIOException: java.io.IOException
> org.springframework.amqp.AmqpIOException: java.io.IOException
>         at 
> org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:69)
>         at 
> org.springframework.amqp.rabbit.connection.RabbitAccessor.convertRabbitAccessException(RabbitAccessor.java:117)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2259)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2211)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2191)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.declareQueue(RabbitAdmin.java:304)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQEndpoint.declareElements(SpringRabbitMQEndpoint.java:793)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQEndpoint.declareElements(SpringRabbitMQEndpoint.java:691)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQConsumer.prepareAndStartListenerContainer(SpringRabbitMQConsumer.java:152)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQConsumer.doStart(SpringRabbitMQConsumer.java:105)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:129)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3608)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRouteConsumers(InternalRouteStartupManager.java:425)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartRouteConsumers(InternalRouteStartupManager.java:341)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:217)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.lambda$doStartOrResumeRoutes$0(InternalRouteStartupManager.java:129)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.lambda$startingRoutes$0(AbstractCamelContext.java:1165)
>         at 
> org.apache.camel.util.concurrent.ContextValueFactory.where(ContextValueFactory.java:65)
>         at 
> org.apache.camel.util.concurrent.ContextValue.where(ContextValue.java:174)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.startingRoutes(AbstractCamelContext.java:1163)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:117)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3210)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2812)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2767)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2347)
>         at 
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:214)
>         at org.apache.camel.main.KameletMain.doStart(KameletMain.java:413)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1945)
>         at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:1253)
>         at org.apache.camel.dsl.jbang.core.commands.Run.doCall(Run.java:365)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:73)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:39)
>         at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
>         at picocli.CommandLine.access$1500(CommandLine.java:148)
>         at 
> picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
>         at 
> picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
>         at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
>         at picocli.CommandLine.execute(CommandLine.java:2174)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.execute(CamelJBangMain.java:245)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:86)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:82)
>         at main.CamelJBang.main(CamelJBang.java:37)
> Caused by: java.io.IOException
>         at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140)
>         at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136)
>         at 
> com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158)
>         at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:1013)
>         at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:49)
>         at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>         at 
> org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1221)
>         at jdk.proxy3/jdk.proxy3.$Proxy68.queueDeclare(Unknown Source)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.declareQueues(RabbitAdmin.java:862)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.lambda$declareQueue$0(RabbitAdmin.java:305)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.invokeAction(RabbitTemplate.java:2291)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2253)
>         ... 44 more
> Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; 
> protocol method: #method<connection.close>(reply-code=541, 
> reply-text=INTERNAL_ERROR - Feature `transient_nonexcl_queues` is deprecated.
> By default, this feature is not permitted anymore.
> The feature will be removed from a future major RabbitMQ version, regardless 
> of the configuration; actual version to be determined.
> To..., class-id=50, method-id=10)
>         at 
> com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
>         at 
> com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
>         at 
> com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552)
>         at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316)
>         at 
> com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152)
>         ... 54 more
> org.springframework.amqp.AmqpIOException: java.io.IOException
>         at 
> org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:69)
>         at 
> org.springframework.amqp.rabbit.connection.RabbitAccessor.convertRabbitAccessException(RabbitAccessor.java:117)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2259)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2211)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2191)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.declareQueue(RabbitAdmin.java:304)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQEndpoint.declareElements(SpringRabbitMQEndpoint.java:793)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQEndpoint.declareElements(SpringRabbitMQEndpoint.java:691)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQConsumer.prepareAndStartListenerContainer(SpringRabbitMQConsumer.java:152)
>         at 
> org.apache.camel.component.springrabbit.SpringRabbitMQConsumer.doStart(SpringRabbitMQConsumer.java:105)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:129)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3608)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRouteConsumers(InternalRouteStartupManager.java:425)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartRouteConsumers(InternalRouteStartupManager.java:341)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:217)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.lambda$doStartOrResumeRoutes$0(InternalRouteStartupManager.java:129)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.lambda$startingRoutes$0(AbstractCamelContext.java:1165)
>         at 
> org.apache.camel.util.concurrent.ContextValueFactory.where(ContextValueFactory.java:65)
>         at 
> org.apache.camel.util.concurrent.ContextValue.where(ContextValue.java:174)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.startingRoutes(AbstractCamelContext.java:1163)
>         at 
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:117)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3210)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2812)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2767)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2347)
>         at 
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:214)
>         at org.apache.camel.main.KameletMain.doStart(KameletMain.java:413)
>         at 
> org.apache.camel.support.service.BaseService.start(BaseService.java:132)
>         at 
> org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1945)
>         at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:1253)
>         at org.apache.camel.dsl.jbang.core.commands.Run.doCall(Run.java:365)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:73)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:39)
>         at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
>         at picocli.CommandLine.access$1500(CommandLine.java:148)
>         at 
> picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
>         at 
> picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
>         at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
>         at picocli.CommandLine.execute(CommandLine.java:2174)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.execute(CamelJBangMain.java:245)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:86)
>         at 
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:82)
>         at main.CamelJBang.main(CamelJBang.java:37)
> Caused by: java.io.IOException
>         at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140)
>         at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136)
>         at 
> com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158)
>         at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:1013)
>         at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:49)
>         at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>         at 
> org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1221)
>         at jdk.proxy3/jdk.proxy3.$Proxy68.queueDeclare(Unknown Source)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.declareQueues(RabbitAdmin.java:862)
>         at 
> org.springframework.amqp.rabbit.core.RabbitAdmin.lambda$declareQueue$0(RabbitAdmin.java:305)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.invokeAction(RabbitTemplate.java:2291)
>         at 
> org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2253)
>         ... 44 more
> Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; 
> protocol method: #method<connection.close>(reply-code=541, 
> reply-text=INTERNAL_ERROR - Feature `transient_nonexcl_queues` is deprecated.
> By default, this feature is not permitted anymore.
> The feature will be removed from a future major RabbitMQ version, regardless 
> of the configuration; actual version to be determined.
> To..., class-id=50, method-id=10)
>         at 
> com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
>         at 
> com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
>         at 
> com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552)
>         at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316)
>         at 
> com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152)
>         ... 54 more
> {noformat}
> AI analysis of the issue:
> {*}Starting from RabbitMQ 4.3.0{*}, the {{transient_nonexcl_queues}} 
> deprecated feature was moved from {{permitted_by_default}} to 
> {*}{{denied_by_default}}{*}. The queue your Camel consumer is trying to 
> declare is:
> {noformat}
> Queue(CamelPlayground.RabbitMqDemo.OffRamp) durable:false, auto-delete:false, 
> exclusive:false{noformat}
> This is a *non-durable (transient), non-exclusive* queue — the exact 
> combination that RabbitMQ 4.3+ rejects by default.
> h3. Solution 1 (Recommended — Client-side fix): Make the queue durable
> Change your Camel route to declare the queue as {*}durable{*}. In the 
> {{camel-spring-rabbitmq}} component, you can do this via the *{{queues}}* 
> parameter combined with the *{{args}}* parameter, or by configuring the 
> {{Queue}} bean properly.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to