-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Expected Behavior
Service should start and retrieve the configuration from Consul
Actual Behaviour
From Micronaut update 4.10.4 Consul client fails to retrieve configuracion from Consul Agent since there is some configuration missing (that was not required in previous versions: 4.10.3 or older)
It is also happening in current latest 4.10.8
See the stack trace below:
2026-02-11T18:34:20,326+01:00 INFO 19 --- [main] i.m.c.DefaultBeanContext : Reading bootstrap environment configuration 2026-02-11T18:34:21,777+01:00 ERROR 19 --- [main] i.m.r.Micronaut : Error starting Micronaut server: Error reading distributed configuration from Consul: Connect Error: Cannot invoke "io.micronaut.http.client.HttpClientConfiguration$Http2ClientConfiguration.getMaxHeaderListSize()" because the return value of "io.micronaut.http.client.HttpClientConfiguration.getHttp2Configuration()" is null io.micronaut.context.exceptions.ConfigurationException: Error reading distributed configuration from Consul: Connect Error: Cannot invoke "io.micronaut.http.client.HttpClientConfiguration$Http2ClientConfiguration.getMaxHeaderListSize()" because the return value of "io.micronaut.http.client.HttpClientConfiguration.getHttp2Configuration()" is null at io.micronaut.discovery.consul.config.ConsulConfigurationClient.lambda$getPropertySources$3(ConsulConfigurationClient.java:151) at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94) at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onError(Operators.java:2235) at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:846) at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:612) at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:592) at reactor.core.publisher.FluxFlatMap$FlatMapMain.innerError(FluxFlatMap.java:867) at reactor.core.publisher.FluxFlatMap$FlatMapInner.onError(FluxFlatMap.java:994) at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93) at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93) at io.micronaut.core.async.propagation.ReactivePropagation$2.onError(ReactivePropagation.java:129) at io.micronaut.http.reactive.execution.FlowAsMono$SubscriptionImpl.forward(FlowAsMono.java:132) at io.micronaut.http.reactive.execution.FlowAsMono$SubscriptionImpl.lambda$request$0(FlowAsMono.java:119) at io.micronaut.core.execution.ImperativeExecutionFlowImpl.onComplete(ImperativeExecutionFlowImpl.java:132) at io.micronaut.core.execution.DelayedExecutionFlowImpl$OnComplete.apply(DelayedExecutionFlowImpl.java:410) at io.micronaut.core.execution.DelayedExecutionFlowImpl.work(DelayedExecutionFlowImpl.java:58) at io.micronaut.core.execution.DelayedExecutionFlowImpl.completeLazy(DelayedExecutionFlowImpl.java:80) at io.micronaut.core.execution.DelayedExecutionFlowImpl.completeExceptionally(DelayedExecutionFlowImpl.java:104) at io.micronaut.core.execution.ExecutionFlow.lambda$timeout$2(ExecutionFlow.java:199) at io.micronaut.http.reactive.execution.ReactorExecutionFlowImpl$2.onError(ReactorExecutionFlowImpl.java:266) at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:241) at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:315) at io.micronaut.http.reactive.execution.FlowAsMono$SubscriptionImpl.forward(FlowAsMono.java:132) at io.micronaut.http.reactive.execution.FlowAsMono$SubscriptionImpl.lambda$request$0(FlowAsMono.java:119) at io.micronaut.core.execution.ImperativeExecutionFlowImpl.onComplete(ImperativeExecutionFlowImpl.java:132) at io.micronaut.core.execution.DelayedExecutionFlowImpl$OnComplete.apply(DelayedExecutionFlowImpl.java:410) at io.micronaut.core.execution.DelayedExecutionFlowImpl.work(DelayedExecutionFlowImpl.java:58) at io.micronaut.core.execution.DelayedExecutionFlowImpl.completeLazy(DelayedExecutionFlowImpl.java:80) at io.micronaut.core.execution.DelayedExecutionFlowImpl.completeExceptionally(DelayedExecutionFlowImpl.java:104) at io.micronaut.http.client.netty.Pool49$PendingRequest.tryCompleteExceptionally(Pool49.java:1124) at io.micronaut.http.client.netty.Pool49$LocalPoolPair.onNewConnectionFailure(Pool49.java:519) at io.micronaut.http.client.netty.Pool49.onNewConnectionFailure(Pool49.java:136) at io.micronaut.http.client.netty.ConnectionManager$PoolHolder$1.onNewConnectionFailure(ConnectionManager.java:1219) at io.micronaut.http.client.netty.InitialConnectionErrorHandler.channelInactive(InitialConnectionErrorHandler.java:50) at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:250) at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:427) at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:392) at io.netty.handler.ssl.SslHandler.channelInactive(SslHandler.java:1208) at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:250) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1424) at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:876) at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:684) at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:141) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:535) at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:201) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1195) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Unknown Source) Suppressed: java.lang.Exception: #block terminated with an error at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:104) at reactor.core.publisher.Mono.block(Mono.java:1779) at io.micronaut.discovery.client.config.DistributedPropertySourceLocator.findPropertySources(DistributedPropertySourceLocator.java:79) at io.micronaut.context.DefaultApplicationContext$RuntimeConfiguredEnvironment.readPropertySourceList(DefaultApplicationContext.java:993) at io.micronaut.context.env.DefaultEnvironment.readPropertySources(DefaultEnvironment.java:442) at io.micronaut.context.env.DefaultEnvironment.start(DefaultEnvironment.java:280) at io.micronaut.context.DefaultApplicationContext$RuntimeConfiguredEnvironment.start(DefaultApplicationContext.java:979) at io.micronaut.context.DefaultApplicationContext$RuntimeConfiguredEnvironment.start(DefaultApplicationContext.java:947) at io.micronaut.context.DefaultApplicationContext.startEnvironment(DefaultApplicationContext.java:295) at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:224) at io.micronaut.runtime.Micronaut.start(Micronaut.java:75) at io.micronaut.runtime.Micronaut.run(Micronaut.java:347) at io.micronaut.runtime.Micronaut.run(Micronaut.java:333) at com.demo.Application.main(Application.java:8)
Steps To Reproduce
Update micronaut to any version above 4.10.3
Include micronaut-discovery-client dependency (will be newer than 4.7.1)
Configure Consul
Environment Information
No response
Example Application
No response
Version
4.10.4