Skip to content

Long running AI query times out #5576

@stroomdev10

Description

@stroomdev10
WARN   [2026-06-16T08:13:56.557Z] [dw-610 - POST /api/ai/v1/askStroomAi] dev.langchain4j.internal.RetryUtils -  A retriable exception occurred. Remaining retries: 2 of 2
java.io.UncheckedIOException: java.net.SocketTimeoutException: Read timed out
        at stroom.ai.impl.ApacheHttpClient.execute(ApacheHttpClient.java:55)
        at dev.langchain4j.model.openai.internal.SyncRequestExecutor.execute(SyncRequestExecutor.java:20)
        at dev.langchain4j.model.openai.internal.RequestExecutor.executeRaw(RequestExecutor.java:44)
        at dev.langchain4j.model.openai.OpenAiChatModel.lambda$doChat$0(OpenAiChatModel.java:159)
        at dev.langchain4j.internal.ExceptionMapper.withExceptionMapper(ExceptionMapper.java:29)
        at dev.langchain4j.internal.RetryUtils.lambda$withRetryMappingExceptions$1(RetryUtils.java:326)
        at dev.langchain4j.internal.RetryUtils$RetryPolicy.withRetry(RetryUtils.java:204)
        at dev.langchain4j.internal.RetryUtils.withRetry(RetryUtils.java:263)
        at dev.langchain4j.internal.RetryUtils.withRetryMappingExceptions(RetryUtils.java:326)
        at dev.langchain4j.internal.RetryUtils.withRetryMappingExceptions(RetryUtils.java:309)
        at dev.langchain4j.model.openai.OpenAiChatModel.doChat(OpenAiChatModel.java:158)
        at dev.langchain4j.model.chat.ChatModel.chat(ChatModel.java:61)
        at dev.langchain4j.model.chat.ChatModel.chat(ChatModel.java:36)
        at dev.langchain4j.model.chat.ChatModel.chat(ChatModel.java:107)
        at stroom.ai.impl.AskStroomAIService.lambda$processUnified$1(AskStroomAIService.java:773)
        at stroom.util.logging.LocationAwareLambdaLogger.logDurationIfDebugEnabled(LocationAwareLambdaLogger.java:339)
        at stroom.ai.impl.AskStroomAIService.processUnified(AskStroomAIService.java:772)
        at stroom.ai.impl.AskStroomAIService.processQuestion(AskStroomAIService.java:559)
        at stroom.ai.impl.AskStroomAIService.askStroomAi(AskStroomAIService.java:184)
        at stroom.ai.impl.AskStroomAiResourceImpl.lambda$askStroomAi$0(AskStroomAiResourceImpl.java:92)
        at event.logging.impl.EventLoggerBuilderImpl.loggedResult(EventLoggerBuilderImpl.java:146)
        at event.logging.impl.EventLoggerBuilderImpl.access$600(EventLoggerBuilderImpl.java:24)
        at event.logging.impl.EventLoggerBuilderImpl$ResultSubBuilderImpl.getResultAndLog(EventLoggerBuilderImpl.java:307)
        at stroom.ai.impl.AskStroomAiResourceImpl.askStroomAi(AskStroomAiResourceImpl.java:110)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
        at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
        at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
        at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
        at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253)
        at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696)
        at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:398)
        at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:350)
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHolder.handle(ServletHolder.java:752)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1620)
        at io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:36)
        at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
        at io.dropwizard.jetty.ZipExceptionHandlingServletFilter.doFilter(ZipExceptionHandlingServletFilter.java:30)
        at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
        at io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:46)
        at io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:40)
        at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
        at stroom.security.impl.SecurityFilter.process(SecurityFilter.java:340)
        at stroom.security.impl.SecurityFilter.lambda$filter$5(SecurityFilter.java:197)
        at stroom.security.impl.SecurityContextImpl.lambda$runnableAsSupplier$0(SecurityContextImpl.java:591)
        at stroom.security.impl.SecurityContextImpl.asUserResult(SecurityContextImpl.java:386)
        at stroom.security.impl.SecurityContextImpl.asUser(SecurityContextImpl.java:406)
        at stroom.security.impl.SecurityFilter.filter(SecurityFilter.java:196)
        at stroom.security.impl.SecurityFilter.doFilter(SecurityFilter.java:105)
        at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
        at stroom.security.common.impl.ContentSecurityFilter.doFilter(ContentSecurityFilter.java:77)
        at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
        at stroom.core.servlet.RejectPostFilter.doFilter(RejectPostFilter.java:57)
        at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
        at stroom.core.servlet.HttpServletRequestFilter.doFilter(HttpServletRequestFilter.java:53)
        at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
        at stroom.core.servlet.CacheControlFilter.doFilter(CacheControlFilter.java:101)
        at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
        at org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1554)
        at org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:868)
        at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:449)
        at org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:469)
        at org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:719)
        at org.eclipse.jetty.server.Handler$Wrapper.handle(Handler.java:794)
        at io.dropwizard.request.logging.LogbackAccessRequestLogAwareHandler.handle(LogbackAccessRequestLogAwareHandler.java:14)
        at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
        at org.eclipse.jetty.server.Handler$Wrapper.handle(Handler.java:794)
        at io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler.handle(AbstractInstrumentedHandler.java:299)
        at io.dropwizard.jetty.RoutingHandler.handle(RoutingHandler.java:41)
        at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:619)
        at io.dropwizard.jetty.ZipExceptionHandlingGzipHandler.handle(ZipExceptionHandlingGzipHandler.java:21)
        at org.eclipse.jetty.server.Handler$Wrapper.handle(Handler.java:794)
        at org.eclipse.jetty.server.handler.GracefulHandler.handle(GracefulHandler.java:112)
        at org.eclipse.jetty.server.Server.handle(Server.java:197)
        at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:720)
        at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:412)
        at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1810)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ssl.SslConnection$SslEndPoint.onFillable(SslConnection.java:614)
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:415)
        at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:156)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:317)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
        at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.net.SocketTimeoutException: Read timed out
        at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:277)
        at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:302)
        at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:354)
        at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:798)
        at java.base/java.net.Socket$SocketInputStream.implRead(Socket.java:974)
        at java.base/java.net.Socket$SocketInputStream.read(Socket.java:964)
        at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:489)
        at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:483)
        at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
        at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1461)
        at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1068)
        at org.apache.hc.core5.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:149)
        at org.apache.hc.core5.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
        at org.apache.hc.core5.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:250)
        at org.apache.hc.core5.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:56)
        at org.apache.hc.core5.http.impl.io.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:331)
        at org.apache.hc.core5.http.impl.io.HttpRequestExecutor.execute(HttpRequestExecutor.java:197)
        at com.codahale.metrics.httpclient5.InstrumentedHttpRequestExecutor.execute(InstrumentedHttpRequestExecutor.java:62)
        at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.lambda$execute$0(InternalExecRuntime.java:236)
        at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager$InternalConnectionEndpoint.execute(PoolingHttpClientConnectionManager.java:798)
        at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.execute(InternalExecRuntime.java:233)
        at org.apache.hc.client5.http.impl.classic.MainClientExec.execute(MainClientExec.java:120)
        at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
        at org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:200)
        at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
        at org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:195)
        at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
        at org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:168)
        at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
        at org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:112)
        at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
        at org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:110)
        at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
        at org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:185)
        at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:245)
        at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:188)
        at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:162)
        at stroom.ai.impl.ApacheHttpClient.execute(ApacheHttpClient.java:53)
        ... 115 common frames omitted

Metadata

Metadata

Assignees

Labels

f:ui / uxIssues relating to the user interface/experience

Type

No fields configured for Bug.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions