[
https://issues.apache.org/jira/browse/CAMEL-24173?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Weiss updated CAMEL-24173:
----------------------------------
Description:
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.
was:
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:
You're absolutely right. Let me break down exactly what's happening and how to
fix it.
## Root Cause
Your analysis is correct. The error is crystal clear in the stack trace:
```
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.
```
**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:
```
Queue(CamelPlayground.RabbitMqDemo.OffRamp) durable:false, auto-delete:false,
exclusive:false
```
This is a **non-durable (transient), non-exclusive** queue — the exact
combination that RabbitMQ 4.3+ rejects by default.
---
## Two Solutions
### ✅ 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.
If you're using the URI syntax, you can pass the `queue` argument to control
durability through the `args` parameter:
```
spring-rabbitmq:CamelPlayground.RabbitMqDemo?queues=OffRamp&routingKey=OffRamp&autoDeclare=true&args=#rabbitArgs
```
Or in your Java configuration, define a durable `Queue` bean:
```java
@Bean
public Queue offRampQueue() {
return new Queue("CamelPlayground.RabbitMqDemo.OffRamp", true); //
durable=true
}
```
If you're using `application.properties`:
```properties
# Make the queue durable
camel.component.spring-rabbitmq.auto-declare=true
# Spring AMQP Queue bean with durable=true
```
The key insight from the RabbitMQ 4.3.0 release notes:
> *"Use durable queues, transient exclusive queues, or durable queues with a
> queue TTL instead."*
### ⚠️ Solution 2 (Server-side workaround): Re-enable the deprecated feature
Add this to **`/etc/rabbitmq/rabbitmq.conf`** on **every node** in the cluster,
then restart each node:
```properties
# Enables deprecated non-durable (transient) non-exclusive queues
# (disabled by default as of RabbitMQ 4.3.0, will be removed in a later
version).
deprecated_features.permit.transient_nonexcl_queues = true
```
**Important caveats:**
- This must be set on **ALL cluster nodes** and they must all be restarted.
- This feature **will be removed entirely** in a future RabbitMQ major version,
so this is only a temporary band-aid.
- If you're already on 4.3.x and only some nodes have this setting, the cluster
will **not** honor it consistently.
---
## Recommendation
**Go with Solution 1** — make the queue durable in your Camel configuration.
This is the forward-compatible approach. The `transient_nonexcl_queues` feature
is on a clear deprecation path towards complete removal, so fixing it at the
client side today will save you from a forced migration later.
The RabbitMQ team recommends:
- ✅ **Durable queues** with optional `x-expires` (queue TTL) for short-lived
needs
- ✅ **Exclusive queues** (set `exclusive=true`) for single-connection temporary
queues
- ❌ Avoid non-durable, non-exclusive queues going forward
> camel-spring-rabbitmq: Cannot connect to latest rabbitmq server 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)