Error after long runnning Microflow is successful

0
 I have a Microflow that takes a VERY LARGE amount of data from an API and processes it. It runs for about 10 minutes and it works perfectly fine. The last two activities in the microflow are a) A log message showing that the process is done b) A message that popup up to tell the user the process is done.   Everything works fine but the log shows an error that happens after the very last action and I can't figure out what it means. The log is below. Does anyone know why this happens at the end of the microflow? I assume its because so much memory is being used but I'm concerned because a) This could be causiing memory leaks b) There are some things on the screen I want to update after the microflow is done, but this error might prevent that from happening   I suspect that it's just using a large amount of memory that mendix is having trouble handling. But if that is it I'd like to know if there is anything I can do to make it run more cleanly.   2026-01-23T15:15:44.747074 [runtime-container/7bgvb]  ERROR - Connector: An error has occurred while handling the request. org.eclipse.jetty.io.EofException: null    at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:116)    at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)    at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275)    at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254)    at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:386)    at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:832)    at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243)    at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)    at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:589)    at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:1051)    at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:1123)    at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:270)    at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:254)    at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:855)    at java.base/sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)    at java.base/sun.nio.cs.StreamEncoder.implWrite(Unknown Source)    at java.base/sun.nio.cs.StreamEncoder.implWrite(Unknown Source)    at java.base/sun.nio.cs.StreamEncoder.write(Unknown Source)    at java.base/java.io.OutputStreamWriter.write(Unknown Source)    at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._flushBuffer(WriterBasedJsonGenerator.java:2065)    at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeString(WriterBasedJsonGenerator.java:1090)    at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeString(WriterBasedJsonGenerator.java:435)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeString$1(JsonGeneratorWrapper.scala:38)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeString$1$adapted(JsonGeneratorWrapper.scala:38)    at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:576)    at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:574)    at scala.collection.AbstractIterable.foreach(Iterable.scala:933)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.writeString(JsonGeneratorWrapper.scala:38)    at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:67)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$2(ResultSerializer.scala:65)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$2$adapted(ResultSerializer.scala:65)    at scala.collection.immutable.VectorStatics$.foreachRec(Vector.scala:2122)    at scala.collection.immutable.Vector.foreach(Vector.scala:2128)    at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:65)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2(ResultSerializer.scala:30)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2$adapted(ResultSerializer.scala:28)    at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:576)    at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:574)    at scala.collection.AbstractIterable.foreach(Iterable.scala:933)    at scala.collection.IterableOps$WithFilter.foreach(Iterable.scala:903)    at com.mendix.webui.jsonserialization.ResultSerializer.generateJsResult(ResultSerializer.scala:28)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:131)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2$adapted(RegularClientAction.scala:119)    at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$6(ContextHandling.scala:59)    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)    at com.mendix.basis.actionmanagement.ActionMonitoring$.$anonfun$monitor$1(ActionMonitoring.scala:52)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.basis.actionmanagement.ActionMonitoring$.monitor(ActionMonitoring.scala:52)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:59)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:33)    at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:95)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:30)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:22)    at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:95)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$1(RegularClientAction.scala:119)    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)    at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest(ProfileHandling.scala:14)    at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest$(ProfileHandling.scala:10)    at com.mendix.webui.actions.client.RegularClientAction.profileRequest(RegularClientAction.scala:95)    at com.mendix.webui.actions.client.RegularClientAction.execute(RegularClientAction.scala:116)    at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:97)    at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:70)    at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:54)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1$adapted(MxRuntimeConnector.scala:54)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:54)    at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:873)    at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)    at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)    at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)    at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)    at org.eclipse.jetty.server.Server.handle(Server.java:563)    at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)    at java.base/java.lang.Thread.run(Unknown Source) Caused by: java.io.IOException: Broken pipe    at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method)    at java.base/sun.nio.ch.SocketDispatcher.writev(Unknown Source)    at java.base/sun.nio.ch.IOUtil.write(Unknown Source)    at java.base/sun.nio.ch.IOUtil.write(Unknown Source)    at java.base/sun.nio.ch.SocketChannelImpl.write(Unknown Source)    at java.base/java.nio.channels.SocketChannel.write(Unknown Source)    at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:110)    at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)    at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275)    at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:254)    at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:386)    at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:832)    at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243)    at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)    at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:589)    at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:1051)    at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:1123)    at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:270)    at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:254)    at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:855)    at java.base/sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)    at java.base/sun.nio.cs.StreamEncoder.implWrite(Unknown Source)    at java.base/sun.nio.cs.StreamEncoder.implWrite(Unknown Source)    at java.base/sun.nio.cs.StreamEncoder.write(Unknown Source)    at java.base/java.io.OutputStreamWriter.write(Unknown Source)    at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._flushBuffer(WriterBasedJsonGenerator.java:2065)    at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeString(WriterBasedJsonGenerator.java:1090)    at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeString(WriterBasedJsonGenerator.java:435)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeString$1(JsonGeneratorWrapper.scala:38)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeString$1$adapted(JsonGeneratorWrapper.scala:38)    at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:576)    at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:574)    at scala.collection.AbstractIterable.foreach(Iterable.scala:933)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.writeString(JsonGeneratorWrapper.scala:38)    at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:67)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$2(ResultSerializer.scala:65)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$2$adapted(ResultSerializer.scala:65)    at scala.collection.immutable.VectorStatics$.foreachRec(Vector.scala:2122)    at scala.collection.immutable.Vector.foreach(Vector.scala:2128)    at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:65)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2(ResultSerializer.scala:30)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2$adapted(ResultSerializer.scala:28)    at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:576)    at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:574)    at scala.collection.AbstractIterable.foreach(Iterable.scala:933)    at scala.collection.IterableOps$WithFilter.foreach(Iterable.scala:903)    at com.mendix.webui.jsonserialization.ResultSerializer.generateJsResult(ResultSerializer.scala:28)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:131)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2$adapted(RegularClientAction.scala:119)    at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$6(ContextHandling.scala:59)    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)    at com.mendix.basis.actionmanagement.ActionMonitoring$.$anonfun$monitor$1(ActionMonitoring.scala:52)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.basis.actionmanagement.ActionMonitoring$.monitor(ActionMonitoring.scala:52)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:59)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:33)    at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:95)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:30)    at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:22)    at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:95)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$1(RegularClientAction.scala:119)    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)    at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest(ProfileHandling.scala:14)    at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest$(ProfileHandling.scala:10)    at com.mendix.webui.actions.client.RegularClientAction.profileRequest(RegularClientAction.scala:95)    at com.mendix.webui.actions.client.RegularClientAction.execute(RegularClientAction.scala:116)    at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:97)    at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:70)    at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:54)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1$adapted(MxRuntimeConnector.scala:54)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:54)    at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:873)    at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)    at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)    at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)    at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)    at org.eclipse.jetty.server.Server.handle(Server.java:563)    at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)    at java.base/java.lang.Thread.run(Unknown Source) 2026-01-23T15:15:44.749130 [runtime-container/7bgvb]  ERROR - Connector: nullcom.mendix.systemwideinterfaces.MendixRuntimeException: com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a value    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:23) Caused by: com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a value    at com.fasterxml.jackson.core.JsonGenerator._constructWriteException(JsonGenerator.java:2884)    at com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:2868)    at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeFieldName(WriterBasedJsonGenerator.java:153)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeFieldName$1(JsonGeneratorWrapper.scala:37)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeFieldName$1$adapted(JsonGeneratorWrapper.scala:37)    at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:576)    at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:574)    at scala.collection.AbstractIterable.foreach(Iterable.scala:933)    at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.writeFieldName(JsonGeneratorWrapper.scala:37)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2(ResultSerializer.scala:29)    at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2$adapted(ResultSerializer.scala:28)    at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:576)    at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:574)    at scala.collection.AbstractIterable.foreach(Iterable.scala:933)    at scala.collection.IterableOps$WithFilter.foreach(Iterable.scala:903)    at com.mendix.webui.jsonserialization.ResultSerializer.generateJsResult(ResultSerializer.scala:28)    at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:102)    at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:70)    at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:54)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1$adapted(MxRuntimeConnector.scala:54)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:54)    at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:873)    at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)    at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)    at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)    at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580)    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553)    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)    at org.eclipse.jetty.server.Server.handle(Server.java:563)    at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)    at java.base/java.lang.Thread.run(Unknown Source)
asked
2 answers
0

Mendix uses Eclipse Jetty as its underlying web server. Jetty is fast and memory-efficient, but it still depends on the HTTP connection lifecycle. Since the microflow runs for about 10 minutes, the browser–server connection is likely closed during this time. The microflow completes in the background and your custom “process is done” log is written. However, when Mendix then tries to send a popup or UI update back to the client, the connection is already closed, so Jetty throws a “broken pipe / EOF” error.

It’s also worth checking this: was the microflow started asynchronously (background) or synchronously, tied to the UI request?

answered
0

Hi,

The error you see (EofException, Broken pipe, JSON serialization error at the very end) is not an issue with your microflow logic itself — it happens because the client (browser) connection closes before Mendix finishes returning the result.

In Mendix:

  • UI-triggered microflows run in the HTTP request/response cycle.

  • If a microflow takes a very long time, the client connection times out or is closed before Mendix can send the final response back.

  • When Mendix tries to serialize and send the end result to the client, it fails with Broken pipe / EofException because the connection is gone.

This is expected behavior for long synchronous calls.

Why this isn’t a memory leak

  • The server finished processing and committed data correctly.

  • The error happens only when writing back to the client.

  • It does not mean your data is corrupted or leaked.

Why UI updates or popups fail

Because the connection was closed before the response was sent, the UI never receives the success response — so the popup and screen refresh won’t show.

Best Practice (professional approach)

For long-running operations like this:

Run the microflow in the background (Task Queue or async) instead of directly from the UI.

  • In Studio Pro, enable Execute this microflow in a Task Queue on the Call Microflow activity.

  • Background tasks are not tied to the client HTTP connection.

This ensures:

  • The UI doesn’t time out.

  • The process completes independently.

  • You can notify the user later (e.g., via notification, polling, status entity).

Alternative UI pattern

If you must start from the UI:

  1. Have a short microflow trigger the background task.

  2. Immediately return to the UI.

  3. Let the client poll or check status periodically to show progress or completion.

answered