Email search not working properly
-
I am having issues with email search as well. I tried using the rebuild-index.sh script in the docs but am running into the following error with a particular mailbox:
local-admin@cloudron:/$ sudo docker exec -it mail /app/code/dovecot-config/rebuild-index.sh ==> Indexing mailboxes for user: mail1@domain.com ==> Successfully indexed mailboxes for user: mail1@domain.com ==> Indexing mailboxes for user: mail2@domain.com ==> Successfully indexed mailboxes for user: mail2@domain.com ==> Indexing mailboxes for user: mail3@domain.com ==> Successfully indexed mailboxes for user: mail3@domain.com ==> Indexing mailboxes for user: mail4@domain.com doveadm(mail4@domain.com): Error: fts_solr: Indexing failed: 500 Server Error doveadm(mail4@domain.com): Error: Mailbox INBOX: Transaction commit failed: FTS transaction commit failed: backend deinitHow do I troubleshoot what is causing mail4@domain.com to fail the reindexing? Tried bumping up the RAM allocation for the mail container from 4GB to 8GB to no avail.
-
Hello @hakunamatata
Do you have Full text search enabled?
-
Hello @hakunamatata
Do you have Full text search enabled?
@James Yes it is.
-
Hello @hakunamatata
Please run the following command to get the
solr.log:docker exec mail cat /run/solr/solr.logDo you see any error in there?
One last resort could be to fully clean the index and build it again.
See:
https://forum.cloudron.io/post/98372 -
Hi James, thanks for the prompt response. There seems to be some Java timeout error, see below. Should I go ahead with the instructions in https://forum.cloudron.io/post/98372 ?
2026-02-09 10:56:08.132 ERROR (qtp858232531-25-localhost-141) [c: s: r: x:dovecot t:localhost-141] o.a.s.h.RequestHandlerBase Server exception => [com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxIOException: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at com.ctc.wstx.exc.WstxLazyException.throwLazily(WstxLazyException.java:40) com.ctc.wstx.exc.WstxLazyException: [com.ctc.wstx.exc.WstxLazyException] java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at com.ctc.wstx.exc.WstxLazyException.throwLazily(WstxLazyException.java:40) ~[?:?] at com.ctc.wstx.sr.StreamScanner.throwLazyError(StreamScanner.java:737) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3761) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.getText(BasicStreamReader.java:894) ~[?:?] at org.apache.solr.handler.loader.XMLLoader.readDoc(XMLLoader.java:363) ~[?:?] at org.apache.solr.handler.loader.XMLLoader.readDoc(XMLLoader.java:319) ~[?:?] at org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:188) ~[?:?] at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:120) ~[?:?] at org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:102) ~[?:?] at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:98) ~[?:?] at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:231) ~[?:?] at org.apache.solr.core.SolrCore.execute(SolrCore.java:2878) ~[?:?] at org.apache.solr.servlet.HttpSolrCall.executeCoreRequest(HttpSolrCall.java:905) ~[?:?] at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:578) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.dispatch(SolrDispatchFilter.java:241) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.lambda$doFilterRetry$0(SolrDispatchFilter.java:198) ~[?:?] at org.apache.solr.servlet.ServletUtils.traceHttpRequestExecution2(ServletUtils.java:227) ~[?:?] at org.apache.solr.servlet.ServletUtils.rateLimitRequest(ServletUtils.java:197) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.doFilterRetry(SolrDispatchFilter.java:192) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:181) ~[?:?] at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:97) ~[jetty-servlet-api-4.0.6.jar:?] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598) ~[jetty-security-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:228) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301) ~[jetty-rewrite-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:822) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.Server.handle(Server.java:563) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149) ~[jetty-util-10.0.26.jar:10.0.26] at java.base/java.lang.Thread.run(Thread.java:840) [?:?] Caused by: com.ctc.wstx.exc.WstxIOException: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at com.ctc.wstx.sr.StreamScanner.constructFromIOE(StreamScanner.java:653) ~[?:?] at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:1017) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4727) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3805) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3759) ~[?:?] ... 59 more Caused by: java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:307) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:272) ~[jetty-server-10.0.26.jar:10.0.26] at org.apache.solr.servlet.ServletInputStreamWrapper.read(ServletInputStreamWrapper.java:82) ~[?:?] at org.apache.commons.io.input.ProxyInputStream.read(ProxyInputStream.java:346) ~[?:?] at com.ctc.wstx.io.BaseReader.readBytes(BaseReader.java:155) ~[?:?] at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:369) ~[?:?] at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:116) ~[?:?] at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:88) ~[?:?] at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57) ~[?:?] at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:1011) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4727) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3805) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3759) ~[?:?] ... 59 more Caused by: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:170) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:112) ~[jetty-io-10.0.26.jar:10.0.26] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] ... 1 more 2026-02-09 10:56:08.139 ERROR (qtp858232531-25-localhost-141) [c: s: r: x:dovecot t:localhost-141] o.a.s.s.HttpSolrCall 500 Exception => [com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxIOException: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at com.ctc.wstx.exc.WstxLazyException.throwLazily(WstxLazyException.java:40) com.ctc.wstx.exc.WstxLazyException: [com.ctc.wstx.exc.WstxLazyException] java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at com.ctc.wstx.exc.WstxLazyException.throwLazily(WstxLazyException.java:40) ~[?:?] at com.ctc.wstx.sr.StreamScanner.throwLazyError(StreamScanner.java:737) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3761) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.getText(BasicStreamReader.java:894) ~[?:?] at org.apache.solr.handler.loader.XMLLoader.readDoc(XMLLoader.java:363) ~[?:?] at org.apache.solr.handler.loader.XMLLoader.readDoc(XMLLoader.java:319) ~[?:?] at org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:188) ~[?:?] at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:120) ~[?:?] at org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:102) ~[?:?] at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:98) ~[?:?] at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:231) ~[?:?] at org.apache.solr.core.SolrCore.execute(SolrCore.java:2878) ~[?:?] at org.apache.solr.servlet.HttpSolrCall.executeCoreRequest(HttpSolrCall.java:905) ~[?:?] at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:578) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.dispatch(SolrDispatchFilter.java:241) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.lambda$doFilterRetry$0(SolrDispatchFilter.java:198) ~[?:?] at org.apache.solr.servlet.ServletUtils.traceHttpRequestExecution2(ServletUtils.java:227) ~[?:?] at org.apache.solr.servlet.ServletUtils.rateLimitRequest(ServletUtils.java:197) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.doFilterRetry(SolrDispatchFilter.java:192) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:181) ~[?:?] at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:97) ~[jetty-servlet-api-4.0.6.jar:?] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598) ~[jetty-security-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:228) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301) ~[jetty-rewrite-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:822) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.Server.handle(Server.java:563) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149) ~[jetty-util-10.0.26.jar:10.0.26] at java.base/java.lang.Thread.run(Thread.java:840) [?:?] Caused by: com.ctc.wstx.exc.WstxIOException: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at com.ctc.wstx.sr.StreamScanner.constructFromIOE(StreamScanner.java:653) ~[?:?] at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:1017) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4727) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3805) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3759) ~[?:?] ... 59 more Caused by: java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:307) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:272) ~[jetty-server-10.0.26.jar:10.0.26] at org.apache.solr.servlet.ServletInputStreamWrapper.read(ServletInputStreamWrapper.java:82) ~[?:?] at org.apache.commons.io.input.ProxyInputStream.read(ProxyInputStream.java:346) ~[?:?] at com.ctc.wstx.io.BaseReader.readBytes(BaseReader.java:155) ~[?:?] at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:369) ~[?:?] at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:116) ~[?:?] at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:88) ~[?:?] at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57) ~[?:?] at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:1011) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4727) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3805) ~[?:?] at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3759) ~[?:?] ... 59 more Caused by: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:170) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:112) ~[jetty-io-10.0.26.jar:10.0.26] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] ... 1 more 2026-02-09 10:56:08.141 INFO (qtp858232531-25) [c: s: r: x: t:localhost-141] o.a.s.s.ServletUtils Could not consume full client request => java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:307) java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:307) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:272) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:262) ~[jetty-server-10.0.26.jar:10.0.26] at org.apache.solr.servlet.ServletInputStreamWrapper.read(ServletInputStreamWrapper.java:72) ~[?:?] at org.apache.solr.servlet.ServletUtils.consumeInputFully(ServletUtils.java:280) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.doFilterRetry(SolrDispatchFilter.java:204) ~[?:?] at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:181) ~[?:?] at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:97) ~[jetty-servlet-api-4.0.6.jar:?] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598) ~[jetty-security-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) ~[jetty-servlet-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:228) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301) ~[jetty-rewrite-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:822) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.Server.handle(Server.java:563) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287) ~[jetty-server-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194) ~[jetty-util-10.0.26.jar:10.0.26] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149) ~[jetty-util-10.0.26.jar:10.0.26] at java.base/java.lang.Thread.run(Thread.java:840) [?:?] Caused by: java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:170) ~[jetty-io-10.0.26.jar:10.0.26] at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:112) ~[jetty-io-10.0.26.jar:10.0.26] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] ... 1 more -
Hello @hakunamatata
Yes, but even better, we have an official documentation for that:
https://docs.cloudron.io/email/#solr-index-corruption
Please follow that one. -
Hi @James, that is what I originally ran when I noticed that the email search was not working and the error messages I have shared are as a result of running the rebuild-index.sh script. Please advise.
-
I think the issue here is trying to figure out why mail4@domain.com is failing during execution of the rebuild-index.sh script. mail1,2,3 indexed successfully and the search is working through Roundcube.
I don't know if it is possible to modify the script to give more details about why the indexing for a particular mailbox failed and in case of such an event, to continue the indexing of the next mailbox in the list. The per mailbox reindexing UI option suggested earlier by @avatar1024 would be perfect for this.
-
Hello @hakunamatata
Is
mail4in any case special?
Some examples: very large, special setup like folder sharring, special named folder with unique characters?The timeout already is 120000 ms / 2 Minutes, so I am unsure if increasing the timeout would solve anything.
-
As the OP I must say that I had to finally give up in enabling full text search as it kept breaking searches. It works for a while but then breaks again and people get no results for very simple searches. Rerunning the script manually to reindex every time is not really a solution.
-
@James nothing special about the mailbox other than it is the largest one at 1.12 GB. The total size of all mailboxes on the server is 2.72 GB and with 8GB RAM assigned to mail container, I don't think lack of memory is what is causing it to fail. This particular mailbox is the only one with an alias associated with it. I removed the alias, re-ran the rebuild-index.sh script but ended up with the same error. So that's not it either.
doveadm(mail4@domain.com): Error: fts_solr: Indexing failed: 500 Server Error doveadm(mail4@domain.com): Error: Mailbox INBOX: Transaction commit failed: FTS transaction commit failed: backend deinitI think I will follow OP's suit and disable the full text search until it is more stable on Cloudron. If you would like to have access to my server for some more troubleshooting, just let me know .
-
@James nothing special about the mailbox other than it is the largest one at 1.12 GB. The total size of all mailboxes on the server is 2.72 GB and with 8GB RAM assigned to mail container, I don't think lack of memory is what is causing it to fail. This particular mailbox is the only one with an alias associated with it. I removed the alias, re-ran the rebuild-index.sh script but ended up with the same error. So that's not it either.
doveadm(mail4@domain.com): Error: fts_solr: Indexing failed: 500 Server Error doveadm(mail4@domain.com): Error: Mailbox INBOX: Transaction commit failed: FTS transaction commit failed: backend deinitI think I will follow OP's suit and disable the full text search until it is more stable on Cloudron. If you would like to have access to my server for some more troubleshooting, just let me know .
Hello @hakunamatata
Yes, please write a mail to support@cloudron.io and reference this issue.
-
@James , I think I found the issue. After googling the time out error message, I came across some threads on other forums which seemed to indicate that it could be related to large email messages that are not being indexed within the 120000 ms / 2 Minutes timeout interval. So I went to mail4's INBOX , deleted the largest email (17.7MB) and then re-ran the script. This time it failed during indexing mail4's TRASH folder. Once I deleted the email from the TRASH folder, voila, indexing was successful.
So perhaps the timeout needs to be increased or be a user defined value.
In my case, I am running my Cloudron instance as a VM on a Synology DS1621+ which features an AMD Ryzen V1500B processor (4 cores, 8 threads, 2.2 Ghz base clock). It isn't a very fast processor so that could be a contributing factor.
-
@James , I think I found the issue. After googling the time out error message, I came across some threads on other forums which seemed to indicate that it could be related to large email messages that are not being indexed within the 120000 ms / 2 Minutes timeout interval. So I went to mail4's INBOX , deleted the largest email (17.7MB) and then re-ran the script. This time it failed during indexing mail4's TRASH folder. Once I deleted the email from the TRASH folder, voila, indexing was successful.
So perhaps the timeout needs to be increased or be a user defined value.
In my case, I am running my Cloudron instance as a VM on a Synology DS1621+ which features an AMD Ryzen V1500B processor (4 cores, 8 threads, 2.2 Ghz base clock). It isn't a very fast processor so that could be a contributing factor.