Some iOS Users Logs Out: Broken Pipe & EofException & JsonGenerationException: Can not write a field name, expecting a value

0
Hi,We have a native mobile application running in production behind a proxy. We are unable to reproduce the issue on our side.In the logs, we observe the following errors:Broken PipeEofExceptionJsonGenerationExceptionAdditionally, there are GetSessionDataAction log entries around the same timeframe. After these errors occur, some users appear to be redirected to the login page. However, users are expected to remain logged in for 7 days.One specific user is consistently logged out immediately after these log entries appear.Based on current observations:The issue does not occur for iPhone 14 users. They can stay 7 days in app.The issue is reported by an iPhone 16 user. He always logout after this log occured. (Sometimes 10 minutes after he login and sometimes 1 day after he login. But he can stay in app sometimes til this error occur)The affected user’s location is known to have intermittent internet connectivity issues, which may also be contributing to the problem.We would appreciate your assistance in investigating whether this could be related to proxy behavior, session handling, device-specific factors, or network instability.at com.mendix.webui.actions.client.GetSessionDataAction.profileRequest(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.profileRequest(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.inContext(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.inContext(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.inContext(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.inContext(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.execute(GetSessionDataAction.scala:68)at com.mendix.webui.actions.client.GetSessionDataAction.execute(GetSessionDataAction.scala:68)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$3$adapted(GetSessionDataAction.scala:83)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$3$adapted(GetSessionDataAction.scala:83)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$3(GetSessionDataAction.scala:118)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$3(GetSessionDataAction.scala:118)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$1(GetSessionDataAction.scala:83)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$1(GetSessionDataAction.scala:83)-------------------------------Full of logs:org.eclipse.jetty.io.EofException: nullat scala.util.Using$.resource(Using.scala:296)at scala.util.Using$.resource(Using.scala:296)at scala.util.Using$.resource(Using.scala:296)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)at scala.collection.immutable.Vector.foreach(Vector.scala:2131)at scala.collection.immutable.Vector.foreach(Vector.scala:2131)at scala.collection.immutable.VectorStatics$.foreachRec(Vector.scala:2125)at scala.collection.immutable.VectorStatics$.foreachRec(Vector.scala:2125)at scala.collection.immutable.HashMap.foreach(HashMap.scala:1115)at scala.collection.immutable.HashMap.foreach(HashMap.scala:1115)at scala.collection.immutable.HashMap.foreach(HashMap.scala:1115)at scala.collection.immutable.HashMap.foreach(HashMap.scala:1115)at scala.collection.IterableOps$WithFilter.foreach(Iterable.scala:905)at scala.collection.IterableOps$WithFilter.foreach(Iterable.scala:905)at scala.collection.IterableOps$WithFilter.foreach(Iterable.scala:905)at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)at scala.collection.AbstractIterable.foreach(Iterable.scala:935)at scala.collection.AbstractIterable.foreach(Iterable.scala:935)at scala.collection.AbstractIterable.foreach(Iterable.scala:935)at scala.collection.AbstractIterable.foreach(Iterable.scala:935)at scala.collection.AbstractIterable.foreach(Iterable.scala:935)at scala.collection.AbstractIterable.foreach(Iterable.scala:935)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:262)at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:262)at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:243)at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:243)at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416)at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416)at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416)at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:853)at org.eclipse.jetty.server.internal.HttpConnection$SendCallback.process(HttpConnection.java:853)at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1440)at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.send(HttpConnection.java:1440)at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1316)at org.eclipse.jetty.server.internal.HttpChannelState$ChannelResponse.write(HttpChannelState.java:1316)at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56)at org.eclipse.jetty.server.handler.ContextResponse.write(ContextResponse.java:56)at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1064)at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1064)at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1064)at org.eclipse.jetty.server.Server.handle(Server.java:182)at org.eclipse.jetty.server.Server.handle(Server.java:182)at org.eclipse.jetty.server.Server.handle(Server.java:182)at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:768)at org.eclipse.jetty.server.Response$Wrapper.write(Response.java:768)at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:185)at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:185)at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:185)at org.eclipse.jetty.server.HttpStream$Wrapper.send(HttpStream.java:185)at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:275)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.WriteFlusher.write(WriteFlusher.java:254)at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:118)at org.eclipse.jetty.io.SocketChannelEndPoint.flush(SocketChannelEndPoint.java:112)at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:368)at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:368)at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)at org.eclipse.jetty.ee8.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:175)at org.eclipse.jetty.ee8.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:175)at org.eclipse.jetty.ee8.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:175)at org.eclipse.jetty.ee8.servlet.ServletHolder.handle(ServletHolder.java:640)at org.eclipse.jetty.ee8.servlet.ServletHolder.handle(ServletHolder.java:640)at org.eclipse.jetty.ee8.servlet.ServletHolder.handle(ServletHolder.java:640)at org.eclipse.jetty.ee8.servlet.ServletHandler.doScope(ServletHandler.java:423)at org.eclipse.jetty.ee8.servlet.ServletHandler.doScope(ServletHandler.java:423)at org.eclipse.jetty.ee8.servlet.ServletHandler.doScope(ServletHandler.java:423)at org.eclipse.jetty.ee8.servlet.ServletHandler.doHandle(ServletHandler.java:454)at org.eclipse.jetty.ee8.servlet.ServletHandler.doHandle(ServletHandler.java:454)at org.eclipse.jetty.ee8.servlet.ServletHandler.doHandle(ServletHandler.java:454)at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)at org.eclipse.jetty.ee8.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1374)at org.eclipse.jetty.ee8.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1374)at org.eclipse.jetty.ee8.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1374)at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:503)at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:503)at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:503)at org.eclipse.jetty.ee8.nested.SessionHandler.doHandle(SessionHandler.java:519)at org.eclipse.jetty.ee8.nested.SessionHandler.doHandle(SessionHandler.java:519)at org.eclipse.jetty.ee8.nested.SessionHandler.doHandle(SessionHandler.java:519)at org.eclipse.jetty.ee8.nested.SessionHandler$SessionStreamWrapper.send(SessionHandler.java:113)at org.eclipse.jetty.ee8.nested.SessionHandler$SessionStreamWrapper.send(SessionHandler.java:113)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:152)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:152)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:152)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)at org.eclipse.jetty.ee8.nested.HttpOutput.write(HttpOutput.java:753)at org.eclipse.jetty.ee8.nested.HttpOutput.write(HttpOutput.java:753)at org.eclipse.jetty.ee8.nested.HttpOutput.channelWrite(HttpOutput.java:294)at org.eclipse.jetty.ee8.nested.HttpOutput.channelWrite(HttpOutput.java:294)at org.eclipse.jetty.ee8.nested.HttpOutput.channelWrite(HttpOutput.java:281)at org.eclipse.jetty.ee8.nested.HttpOutput.channelWrite(HttpOutput.java:281)at org.eclipse.jetty.ee8.nested.HttpChannel.write(HttpChannel.java:887)at org.eclipse.jetty.ee8.nested.HttpChannel.write(HttpChannel.java:887)at org.eclipse.jetty.ee8.nested.HttpChannel.send(HttpChannel.java:833)at org.eclipse.jetty.ee8.nested.HttpChannel.send(HttpChannel.java:833)at org.eclipse.jetty.ee8.nested.HttpChannel.sendResponse(HttpChannel.java:821)at org.eclipse.jetty.ee8.nested.HttpChannel.sendResponse(HttpChannel.java:821)at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:459)at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:459)at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:459)at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:616)at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:616)at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:616)at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1289)at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1289)at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1289)at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1443)at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1443)at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1443)at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:830)at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:830)at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:830)at org.eclipse.jetty.ee8.nested.ContextHandler.doHandle(ContextHandler.java:885)at org.eclipse.jetty.ee8.nested.ContextHandler.doHandle(ContextHandler.java:885)at org.eclipse.jetty.ee8.nested.ContextHandler.doHandle(ContextHandler.java:885)at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2450)at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2450)at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2450)at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)at java.base/sun.nio.cs.StreamEncoder.write(StreamEncoder.java:139)at java.base/sun.nio.cs.StreamEncoder.write(StreamEncoder.java:139)at java.base/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:309)at java.base/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:309)at java.base/sun.nio.cs.StreamEncoder.lockedWrite(StreamEncoder.java:158)at java.base/sun.nio.cs.StreamEncoder.lockedWrite(StreamEncoder.java:158)at java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:381)at java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:381)at java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:357)at java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:357)at java.base/sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:66)at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:574)at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:227)at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:158)at java.base/java.nio.channels.SocketChannel.write(SocketChannel.java:660)at java.base/java.lang.Thread.run(Thread.java:1583)at java.base/java.lang.Thread.run(Thread.java:1583)at java.base/java.lang.Thread.run(Thread.java:1583)at java.base/java.io.OutputStreamWriter.write(OutputStreamWriter.java:219)at java.base/java.io.OutputStreamWriter.write(OutputStreamWriter.java:219)at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest$(ProfileHandling.scala:10)at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest$(ProfileHandling.scala:10)at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest(ProfileHandling.scala:14)at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest(ProfileHandling.scala:14)at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:53)at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:53)at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:42)at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:42)at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:81)at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:81)at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:50)at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:50)at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$9(ContextHandling.scala:81)at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$9(ContextHandling.scala:81)at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:72)at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:72)at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:72)at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:106)at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:101)at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:101)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:65)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:65)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:57)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:57)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:57)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsValue(ResultSerializer.scala:57)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsResult(ResultSerializer.scala:28)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsResult(ResultSerializer.scala:28)at com.mendix.webui.jsonserialization.ResultSerializer.generateJsResult(ResultSerializer.scala:28)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$2$adapted(ResultSerializer.scala:65)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$2$adapted(ResultSerializer.scala:65)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$2(ResultSerializer.scala:65)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$2(ResultSerializer.scala:65)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$1$adapted(ResultSerializer.scala:57)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$1$adapted(ResultSerializer.scala:57)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$1$adapted(ResultSerializer.scala:57)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$1$adapted(ResultSerializer.scala:57)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$1(ResultSerializer.scala:60)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$1(ResultSerializer.scala:60)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$1(ResultSerializer.scala:59)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsValue$1(ResultSerializer.scala:59)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2$adapted(ResultSerializer.scala:28)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2$adapted(ResultSerializer.scala:28)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2$adapted(ResultSerializer.scala:28)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2(ResultSerializer.scala:30)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2(ResultSerializer.scala:30)at com.mendix.webui.jsonserialization.ResultSerializer.$anonfun$generateJsResult$2(ResultSerializer.scala:29)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.writeFieldName(JsonGeneratorWrapper.scala:37)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.writeFieldName(JsonGeneratorWrapper.scala:37)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.writeFieldName(JsonGeneratorWrapper.scala:37)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeFieldName$1$adapted(JsonGeneratorWrapper.scala:37)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeFieldName$1$adapted(JsonGeneratorWrapper.scala:37)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeFieldName$1$adapted(JsonGeneratorWrapper.scala:37)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeFieldName$1(JsonGeneratorWrapper.scala:37)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeFieldName$1(JsonGeneratorWrapper.scala:37)at com.mendix.webui.jsonserialization.JsonGeneratorWrapper.$anonfun$writeFieldName$1(JsonGeneratorWrapper.scala:37)at com.mendix.webui.actions.client.GetSessionDataAction.profileRequest(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.profileRequest(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.inContext(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.inContext(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.inContext(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.inContext(GetSessionDataAction.scala:42)at com.mendix.webui.actions.client.GetSessionDataAction.execute(GetSessionDataAction.scala:68)at com.mendix.webui.actions.client.GetSessionDataAction.execute(GetSessionDataAction.scala:68)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$3$adapted(GetSessionDataAction.scala:83)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$3$adapted(GetSessionDataAction.scala:83)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$3(GetSessionDataAction.scala:118)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$3(GetSessionDataAction.scala:118)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$1(GetSessionDataAction.scala:83)at com.mendix.webui.actions.client.GetSessionDataAction.$anonfun$execute$1(GetSessionDataAction.scala:83)at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:23)at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)at com.mendix.modules.opentelemetry.OpenTelemetryUtilImpl$.withCurrentContextFrom(OpenTelemetryUtilImpl.scala:17)at com.mendix.modules.opentelemetry.OpenTelemetryUtilImpl$.withCurrentContextFrom(OpenTelemetryUtilImpl.scala:17)at com.mendix.modules.opentelemetry.OpenTelemetryUtilImpl$.withCurrentContextFrom(OpenTelemetryUtilImpl.scala:17)at com.mendix.modules.opentelemetry.OpenTelemetryUtilImpl$.$anonfun$withCurrentContextFrom$1(OpenTelemetryUtilImpl.scala:18)at com.mendix.modules.opentelemetry.OpenTelemetryUtilImpl$.$anonfun$withCurrentContextFrom$1(OpenTelemetryUtilImpl.scala:18)at com.mendix.modules.opentelemetry.OpenTelemetryUtilImpl$.$anonfun$withCurrentContextFrom$1(OpenTelemetryUtilImpl.scala:18)at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:34)at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:34)at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:34)at com.mendix.external.connector.MxRuntimeConnector.doProcessRequest(MxRuntimeConnector.scala:68)at com.mendix.external.connector.MxRuntimeConnector.doProcessRequest(MxRuntimeConnector.scala:68)at com.mendix.external.connector.MxRuntimeConnector.doProcessRequest(MxRuntimeConnector.scala:68)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:34)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:34)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:34)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$doProcessRequest$2$adapted(MxRuntimeConnector.scala:68)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$doProcessRequest$2$adapted(MxRuntimeConnector.scala:68)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$doProcessRequest$2$adapted(MxRuntimeConnector.scala:68)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$doProcessRequest$2(MxRuntimeConnector.scala:68)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$doProcessRequest$2(MxRuntimeConnector.scala:68)at com.mendix.external.connector.MxRuntimeConnector.$anonfun$doProcessRequest$2(MxRuntimeConnector.scala:68)at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:1091)at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:1091)at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:1091)at com.mendix.basis.actionmanagement.ActionMonitoring$.monitor(ActionMonitoring.scala:52)at com.mendix.basis.actionmanagement.ActionMonitoring$.monitor(ActionMonitoring.scala:52)at com.mendix.basis.actionmanagement.ActionMonitoring$.$anonfun$monitor$1(ActionMonitoring.scala:52)at com.mendix.basis.actionmanagement.ActionMonitoring$.$anonfun$monitor$1(ActionMonitoring.scala:52)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeFieldName(WriterBasedJsonGenerator.java:155)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeFieldName(WriterBasedJsonGenerator.java:155)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeFieldName(WriterBasedJsonGenerator.java:153)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeString(WriterBasedJsonGenerator.java:1090)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeString(WriterBasedJsonGenerator.java:1090)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeFieldName(WriterBasedJsonGenerator.java:190)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeFieldName(WriterBasedJsonGenerator.java:190)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._flushBuffer(WriterBasedJsonGenerator.java:2065)at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._flushBuffer(WriterBasedJsonGenerator.java:2065)at com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:2885)at com.fasterxml.jackson.core.JsonGenerator._constructWriteException(JsonGenerator.java:2901)at java.base/sun.nio.ch.SocketDispatcher.writev0(Native Method)2026-02-19 06:45:29.999 ERROR - Connector: nullcom.mendix.systemwideinterfaces.MendixRuntimeException: com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a valueCaused by: com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a valueCaused by: java.io.IOException: Broken pipe2026-02-19 06:45:29.999 ERROR - Connector: An error has occurred while handling the request.
asked
1 answers
0

hi,

What These Errors Mean

Seeing:

  • org.eclipse.jetty.io.EofException
  • java.io.IOException: Broken pipe
  • JsonGenerationException: Can not write a field name, expecting a value

in your logs means the runtime tried to write a response back to a client connection that was already closed.

This is a network/connection issue, not a session logic bug inside Mendix.

Specifically:

  • EofException shows the connection ended unexpectedly
  • Broken pipe means the server tried to write data to a closed socket
  • The broken JSON generation happens because the connection closed mid-response

This pattern matches clients disconnecting while the server was still writing response data.

Why Some iOS Users Get Logged Out

Your native app keeps user sessions valid for 7 days — that part is correct.

But when a connection is dropped unexpectedly, the app may interpret the partial/failing response as:

“Session is invalid“

So it falls back to the login screen.

This behavior is typical when:

  • ✔ Proxy closes the connection before the response completes
  • ✔ Network drops in areas with unstable connectivity
  • ✔ Client stops the request while the server is still sending data

These errors do not necessarily mean the session has expired or was revoked — just that the HTTP request couldn’t complete normally.

Why iPhone 14 Users Don’t See It

Different devices (and OS versions) handle network interruptions differently:

  • 📌 Some devices tolerate dropped TCP connections and retry
  • 📌 Others close the connection immediately when network fluctuates
  • 📌 Proxy timeouts can vary by network location

So an iPhone 16 on weak network + proxy with short idle timeouts is more likely to cause this. This is a real-world networking behavior, not Mendix runtime instability.

What You Should Investigate (Correct Stack-Based Approach)

This is not a Mendix app bug — it is a networking issue.

1.Proxy Timeouts

Check your proxy / load balancer settings:

  • Idle timeout
  • Maximum request time
  • Keep-alive settings

Too-short timeouts lead to broken pipes as the server is writing JSON back.

2.Client Network Behavior

Users in unstable areas may drop connections mid-response.

Native apps often aggressively close sockets when backgrounded → server sees a broken pipe.

3.Identify Which API Calls Fail

Enable request logging or a conditional trace for:


ConnectionBus_Requests
mx.httpconnector

This helps you pinpoint the call that is interrupted.

It is a good operational practice recommended by Mendix for similar broken pipe investigations.

4.Session Persistence

Even though the session is valid for 7 days, if a specific request fails (and the app interprets that as failure), it may redirect to login — this is client behavior, not session expiration.

  • The Broken pipe + EofException + JsonGenerationException sequence means the client connection was dropped while the server was writing a response.
  • This is not caused by a session timeout, but by network/proxy behavior.
  • Users on unstable networks or behind aggressive proxies are more likely to experience it.
  • To fix it, inspect and adjust proxy and network timeouts, and ensure your native app gracefully handles transient connection drops.


answered