Skip to content

fix(queue): cleanup and implement fail-fast on consumption exception#15049

Merged
fhussonnois merged 1 commit intokestra_wipfrom
fix/queues
Mar 13, 2026
Merged

fix(queue): cleanup and implement fail-fast on consumption exception#15049
fhussonnois merged 1 commit intokestra_wipfrom
fix/queues

Conversation

@fhussonnois
Copy link
Member

@fhussonnois fhussonnois commented Mar 12, 2026

Related-to: kestra-io/kestra-ee/pull/7031

@github-actions
Copy link
Contributor

github-actions bot commented Mar 12, 2026

🐋 Docker image

ghcr.io/kestra-io/kestra-pr:15049
docker run --pull=always --rm -it -p 8080:8080 --user=root -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp ghcr.io/kestra-io/kestra-pr:15049 server local

🧪 Java Unit Tests

TestsPassed ☑️Skipped ⚠️Failed ❌️Time ⏱
Java Tests Report4378 ran4352 ✅22 ⚠️4 ❌45m 59s 285ms
TestResultTime ⏱
Java Tests Report
ConditionServiceTest.initializationError❌ failure6ms
ParentOutputFunctionTest.initializationError❌ failure
MysqlDispatchQueueTest.errorProcessing()❌ failure345ms
ExecutionControllerRunnerTest.restartExecutionByIdShouldSucceed()❌ failure518ms

@github-actions
Copy link
Contributor

github-actions bot commented Mar 12, 2026

Tests report quick summary:

failed ❌ > tests: 4378, success: 4352, skipped: 22, failed: 4

Project Status Success Skipped Failed
cli success ✅ 69 0 0
core failed ❌ 2026 0 2
executor success ✅ 31 0 0
jdbc success ✅ 11 0 0
jdbc-h2 success ✅ 533 0 0
jdbc-mysql failed ❌ 524 0 1
jdbc-postgres success ✅ 526 0 0
processor success ✅ 7 0 0
queue success ✅ 31 0 0
runner-memory success ✅ 1 0 0
scheduler success ✅ 56 0 0
script success ✅ 11 0 0
storage-local success ✅ 64 0 0
webserver failed ❌ 405 0 1
worker success ✅ 23 0 0
worker-controller success ✅ 56 0 0

Failed tests:

core > io.kestra.core.services.ConditionServiceTest > initializationError failed ❌ in 0.006
io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [io.micronaut.http.bind.DefaultRequestBinderRegistry]&#10;&#10;Message: Cannot resolve beans until the context is running&#10;Path Taken:&#10;new @j.i.Singleton i.m.h.b.DefaultRequestBinderRegistry(ConversionService conversionService, List<RequestArgumentBinder<Object>> binders, DefaultBodyAnnotationBinder<Object> bodyAnnotationBinder)&#10;\---> new @j.i.Singleton i.m.h.b.DefaultRequestBinderRegistry(ConversionService conversionService, [List<RequestArgumentBinder<Object>> binders], DefaultBodyAnnotationBinder<Object> bodyAnnotationBinder)

io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [io.micronaut.http.bind.DefaultRequestBinderRegistry]

Message: Cannot resolve beans until the context is running
Path Taken:
new @j.i.Singleton i.m.h.b.DefaultRequestBinderRegistry(ConversionService conversionService, List<RequestArgumentBinder<Object>> binders, DefaultBodyAnnotationBinder<Object> bodyAnnotationBinder)
\---> new @j.i.Singleton i.m.h.b.DefaultRequestBinderRegistry(ConversionService conversionService, [List<RequestArgumentBinder<Object>> binders], DefaultBodyAnnotationBinder<Object> bodyAnnotationBinder)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2357)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:3625)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistrations(DefaultBeanContext.java:3580)
	at io.micronaut.context.DefaultBeanContext.getBeanRegistrations(DefaultBeanContext.java:3554)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:1480)
	at io.micronaut.context.AbstractBeanResolutionContext.getBeansOfType(AbstractBeanResolutionContext.java:240)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBeansOfType(AbstractInitializableBeanDefinition.java:2226)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractInitializableBeanDefinition.java:1515)
	at io.micronaut.http.bind.$DefaultRequestBinderRegistry$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:1849)
	at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:1824)
	at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:863)
	at io.micronaut.context.BeanLocator.findBean(BeanLocator.java:410)
	at io.micronaut.http.filter.BaseFilterProcessor.<init>(BaseFilterProcessor.java:74)
	at io.micronaut.web.router.ServerFilterRouteBuilder$1.<init>(ServerFilterRouteBuilder.java:65)
	at io.micronaut.web.router.ServerFilterRouteBuilder.<init>(ServerFilterRouteBuilder.java:65)
	at io.micronaut.web.router.$ServerFilterRouteBuilder$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:3625)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistrations(DefaultBeanContext.java:3580)
	at io.micronaut.context.DefaultBeanContext.getBeanRegistrations(DefaultBeanContext.java:3554)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:1480)
	at io.micronaut.context.AbstractBeanResolutionContext.getBeansOfType(AbstractBeanResolutionContext.java:240)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBeansOfType(AbstractInitializableBeanDefinition.java:2226)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractInitializableBeanDefinition.java:1515)
	at io.micronaut.web.router.$DefaultRouter$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1367)
	at io.micronaut.http.server.$RouteExecutor$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1367)
	at io.micronaut.http.server.netty.$DefaultNettyEmbeddedServerFactory$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1768)
	at io.micronaut.http.server.netty.$DefaultNettyEmbeddedServerFactory$BuildDefaultServer0$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:847)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:839)
	at io.micronaut.test.extensions.AbstractMicronautExtension.beforeClass(AbstractMicronautExtension.java:366)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.beforeAll(MicronautJunit5Extension.java:86)
	at io.kestra.core.junit.extensions.KestraTestExtension.beforeAll(KestraTestExtension.java:51)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
Caused by: io.micronaut.context.exceptions.BeanContextException: Cannot resolve beans until the context is running
	at io.micronaut.context.DefaultBeanContext.assertContextState(DefaultBeanContext.java:2786)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2999)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1367)
	at io.micronaut.data.runtime.http.$PageableRequestArgumentBinder$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	... 76 more

core > io.kestra.plugin.core.flow.ParentOutputFunctionTest > initializationError failed ❌ in 0
io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [io.micronaut.web.router.DefaultRouter]&#10;&#10;Message: Cannot resolve beans until the context is running&#10;Path Taken:&#10;@i.m.c.a.Primary @j.i.Singleton i.m.h.s.n.NettyEmbeddedServer i.m.h.s.n.DefaultNettyEmbeddedServerFactory.buildDefaultServer#buildDefaultServer(NettyHttpServerConfiguration configuration)&#10;\---> new i.m.h.s.n.DefaultNettyEmbeddedServerFactory(ApplicationContext applicationContext, [RouteExecutor routeExecutor], MediaTypeCodecRegistry mediaTypeCodecRegistry, MessageBodyHandlerRegistry messageBodyHandlerRegistry, StaticResourceResolver staticResourceResolver, @Named("netty") ThreadFactory nettyThreadFactory, HttpCompressionStrategy httpCompressionStrategy, EventLoopGroupFactory eventLoopGroupFactory, EventLoopGroupRegistry eventLoopGroupRegistry, WebSocketUpgradeHandlerFactory webSocketUpgradeHandlerFactory, NettyServerSslFactory sslFactory, BeanProvider<CertificateProvider> certificateProviders)&#10;      \---> new @j.i.Singleton i.m.h.s.RouteExecutor([Router router], BeanContext beanContext, RequestArgumentSatisfier requestArgumentSatisfier, HttpServerConfiguration serverConfiguration, ErrorResponseProcessor<Object> errorResponseProcessor, ExecutorSelector executorSelector)&#10;            \---> new @j.i.Singleton i.m.w.r.DefaultRouter([Collection<RouteBuilder> builders])

io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [io.micronaut.web.router.DefaultRouter]

Message: Cannot resolve beans until the context is running
Path Taken:
@i.m.c.a.Primary @j.i.Singleton i.m.h.s.n.NettyEmbeddedServer i.m.h.s.n.DefaultNettyEmbeddedServerFactory.buildDefaultServer#buildDefaultServer(NettyHttpServerConfiguration configuration)
\---> new i.m.h.s.n.DefaultNettyEmbeddedServerFactory(ApplicationContext applicationContext, [RouteExecutor routeExecutor], MediaTypeCodecRegistry mediaTypeCodecRegistry, MessageBodyHandlerRegistry messageBodyHandlerRegistry, StaticResourceResolver staticResourceResolver, @Named("netty") ThreadFactory nettyThreadFactory, HttpCompressionStrategy httpCompressionStrategy, EventLoopGroupFactory eventLoopGroupFactory, EventLoopGroupRegistry eventLoopGroupRegistry, WebSocketUpgradeHandlerFactory webSocketUpgradeHandlerFactory, NettyServerSslFactory sslFactory, BeanProvider<CertificateProvider> certificateProviders)
      \---> new @j.i.Singleton i.m.h.s.RouteExecutor([Router router], BeanContext beanContext, RequestArgumentSatisfier requestArgumentSatisfier, HttpServerConfiguration serverConfiguration, ErrorResponseProcessor<Object> errorResponseProcessor, ExecutorSelector executorSelector)
            \---> new @j.i.Singleton i.m.w.r.DefaultRouter([Collection<RouteBuilder> builders])
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2357)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:3625)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistrations(DefaultBeanContext.java:3580)
	at io.micronaut.context.DefaultBeanContext.getBeanRegistrations(DefaultBeanContext.java:3554)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:1480)
	at io.micronaut.context.AbstractBeanResolutionContext.getBeansOfType(AbstractBeanResolutionContext.java:240)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBeansOfType(AbstractInitializableBeanDefinition.java:2226)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractInitializableBeanDefinition.java:1515)
	at io.micronaut.web.router.$DefaultRouter$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1367)
	at io.micronaut.http.server.$RouteExecutor$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2137)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1367)
	at io.micronaut.http.server.netty.$DefaultNettyEmbeddedServerFactory$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1768)
	at io.micronaut.http.server.netty.$DefaultNettyEmbeddedServerFactory$BuildDefaultServer0$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3162)
	at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3012)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1786)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:847)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:839)
	at io.micronaut.test.extensions.AbstractMicronautExtension.beforeClass(AbstractMicronautExtension.java:366)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.beforeAll(MicronautJunit5Extension.java:86)
	at io.kestra.core.junit.extensions.KestraTestExtension.beforeAll(KestraTestExtension.java:51)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
Caused by: io.micronaut.context.exceptions.BeanContextException: Cannot resolve beans until the context is running
	at io.micronaut.context.DefaultBeanContext.assertContextState(DefaultBeanContext.java:2786)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2999)
	at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2774)
	at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:1849)
	at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:1824)
	at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:863)
	at io.micronaut.context.BeanLocator.findBean(BeanLocator.java:410)
	at io.micronaut.web.router.DefaultRouteBuilder.<init>(DefaultRouteBuilder.java:126)
	at io.micronaut.management.endpoint.processors.AbstractEndpointRouteBuilder.<init>(AbstractEndpointRouteBuilder.java:72)
	at io.micronaut.management.endpoint.processors.DeleteEndpointRouteBuilder.<init>(DeleteEndpointRouteBuilder.java:49)
	at io.micronaut.management.endpoint.processors.$DeleteEndpointRouteBuilder$Definition.instantiate(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2342)
	... 51 more

jdbc-mysql > io.kestra.queue.mysql.MysqlDispatchQueueTest > errorProcessing() failed ❌ in 0.345
org.opentest4j.AssertionFailedError: [shutdown() should have been called on processing error] &#10;Expecting value to be true but was false

org.opentest4j.AssertionFailedError: [shutdown() should have been called on processing error] 
Expecting value to be true but was false
	at io.kestra.queue.AbstractDispatchQueueTest.errorProcessing(AbstractDispatchQueueTest.java:150)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$2.proceed(MicronautJunit5Extension.java:154)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:171)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:128)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestMethod(MicronautJunit5Extension.java:141)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

webserver > io.kestra.webserver.controllers.api.ExecutionControllerRunnerTest > restartExecutionByIdShouldSucceed() failed ❌ in 0.518
io.micronaut.http.client.exceptions.HttpClientResponseException: invalid bulk restart

io.micronaut.http.client.exceptions.HttpClientResponseException: invalid bulk restart
	at io.micronaut.http.client.netty.DefaultHttpClient.makeErrorFromRequestBody(DefaultHttpClient.java:2136)
	at io.micronaut.http.client.netty.DefaultHttpClient.handleExchangeResponse(DefaultHttpClient.java:949)
	at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchange$9(DefaultHttpClient.java:902)
	at io.micronaut.core.execution.ImperativeExecutionFlowImpl.flatMap(ImperativeExecutionFlowImpl.java:72)
	at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchange$10(DefaultHttpClient.java:902)
	at io.micronaut.http.client.netty.DefaultHttpClient.lambda$sendRequestWithRedirectsNoFilter$44(DefaultHttpClient.java:1660)
	at io.micronaut.core.execution.ImperativeExecutionFlowImpl.flatMap(ImperativeExecutionFlowImpl.java:72)
	at io.micronaut.core.execution.DelayedExecutionFlowImpl$FlatMap.apply(DelayedExecutionFlowImpl.java:359)
	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.complete(DelayedExecutionFlowImpl.java:99)
	at io.micronaut.http.client.netty.DefaultHttpClient$6.complete(DefaultHttpClient.java:1757)
	at io.micronaut.http.client.netty.Http1ResponseHandler$BufferedContent.complete(Http1ResponseHandler.java:226)
	at io.micronaut.http.client.netty.Http1ResponseHandler$BufferedContent.read(Http1ResponseHandler.java:189)
	at io.micronaut.http.client.netty.Http1ResponseHandler$BufferedContent.read(Http1ResponseHandler.java:161)
	at io.micronaut.http.client.netty.Http1ResponseHandler.channelReadInstrumented(Http1ResponseHandler.java:75)
	at io.micronaut.http.client.netty.Http1ResponseHandler.channelReadInstrumented(Http1ResponseHandler.java:50)
	at io.micronaut.http.client.netty.SimpleChannelInboundHandlerInstrumented.channelRead0(SimpleChannelInboundHandlerInstrumented.java:46)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:356)
	at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:170)
	at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:48)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:91)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:356)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:434)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:361)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:325)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:249)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:354)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:293)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:354)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1429)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:172)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.handle(AbstractNioChannel.java:445)
	at io.netty.channel.nio.NioIoHandler$DefaultNioRegistration.handle(NioIoHandler.java:388)
	at io.netty.channel.nio.NioIoHandler.processSelectedKey(NioIoHandler.java:596)
	at io.netty.channel.nio.NioIoHandler.processSelectedKeysPlain(NioIoHandler.java:541)
	at io.netty.channel.nio.NioIoHandler.processSelectedKeys(NioIoHandler.java:514)
	at io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:484)
	at io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:225)
	at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:196)
	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(Thread.java:1474)
	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.http.client.netty.DefaultHttpClient$1.exchange(DefaultHttpClient.java:601)
		at io.micronaut.http.client.netty.DefaultHttpClient$1.retrieve(DefaultHttpClient.java:609)
		at io.micronaut.http.client.BlockingHttpClient.retrieve(BlockingHttpClient.java:123)
		at io.micronaut.http.client.BlockingHttpClient.retrieve(BlockingHttpClient.java:172)
		at io.kestra.webserver.controllers.api.ExecutionControllerRunnerTest.restartExecutionByIdShouldSucceed(ExecutionControllerRunnerTest.java:2462)
		at java.base/java.lang.reflect.Method.invoke(Method.java:565)
		at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$2.proceed(MicronautJunit5Extension.java:154)
		at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:171)
		at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:128)
		at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestMethod(MicronautJunit5Extension.java:141)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)


Develocity build scan: https://develocity.kestra.io/s/x4wgng7mhjspc

Copy link
Member

@loicmathieu loicmathieu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@fhussonnois fhussonnois merged commit e7efb83 into kestra_wip Mar 13, 2026
8 of 10 checks passed
@fhussonnois fhussonnois deleted the fix/queues branch March 13, 2026 09:02
@github-project-automation github-project-automation bot moved this from To review to Done in Pull Requests Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants