Timeout for PDF Document Generation

0
Hi all,   I have implemented the PDF Documentation Generation by following this documentation: PDF Document Generation | Mendix Documentation. I am now running into an issue where the Generation 'times out'. This only happens in our production/acceptance environment and works when running from Mendix Studio Pro. I believe I had read somewhere that certificates might be affecting the generation but I'm not sure. Here are the most recent logs for the issue.    2025-08-28 16:43:47.671 ERROR - DocumentGeneration: Timeout while waiting for document result for request 17fa3d06-6357-4326-bfd6-0ddae968307b2025-08-28 16:43:47.671 ERROR - Connector: An error has occurred while handling the request. [User 'tyron.corpuz' with session id '5b47d5ea-XXXX-XXXX-XXXX-XXXXXXXXea3e' and roles 'Administrator, Author']com.mendix.webui.WebUIException: Exception while executing runtime operation    at com.mendix.webui.actions.client.RuntimeOperationAction.$anonfun$apply$3(RuntimeOperationAction.scala:60) Caused by: com.mendix.modules.microflowengine.MicroflowException: com.mendix.systemwideinterfaces.MendixRuntimeException: documentgeneration.implementation.exceptions.DocGenPollingException: Timeout while waiting for document result for request 17fa3d06-6357-4326-bfd6-0ddae968307b    at CustomerHealthDashboard.ACT_Projects_GeneratePDF (JavaAction : 'Generate PDF from page') Advanced stacktrace:    at com.mendix.modules.microflowengine.MicroflowUtil$.processException(MicroflowUtil.scala:73) Caused by: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: documentgeneration.implementation.exceptions.DocGenPollingException: Timeout while waiting for document result for request 17fa3d06-6357-4326-bfd6-0ddae968307b    at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:125) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: documentgeneration.implementation.exceptions.DocGenPollingException: Timeout while waiting for document result for request 17fa3d06-6357-4326-bfd6-0ddae968307b    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:23) Caused by: documentgeneration.implementation.exceptions.DocGenPollingException: Timeout while waiting for document result for request 17fa3d06-6357-4326-bfd6-0ddae968307b    at documentgeneration.implementation.RequestManager.waitForResult(RequestManager.java:45)    at documentgeneration.implementation.DocumentGenerator.generate(DocumentGenerator.java:91)    at documentgeneration.actions.JA_GenerateDocument.executeAction(JA_GenerateDocument.java:64)    at documentgeneration.actions.JA_GenerateDocument.executeAction(JA_GenerateDocument.java:18)    at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:73)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48)    at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.java:66)    at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:122)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:122)    at com.mendix.basis.actionmanagement.UserActionCallBuilderImpl.execute(UserActionCallBuilderImpl.scala:58)    at com.mendix.modules.microflowengine.actions.actioncall.ForegroundJavaAction.doExecute(ForegroundJavaAction.scala:35)    at com.mendix.modules.microflowengine.actions.actioncall.ForegroundJavaAction.doExecute(ForegroundJavaAction.scala:11)    at com.mendix.modules.microflowengine.actions.actioncall.JavaAction.execute(JavaAction.scala:38)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.$anonfun$execute$1(MicroflowObject.scala:29)    at scala.Option.flatMap(Option.scala:283)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.scala:26)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:198)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeMicroflow(MicroflowImpl.scala:131)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.$anonfun$executeAction$1(MicroflowImpl.scala:111)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.$anonfun$withSpan$1(OpenTelemetryUtil.scala:18)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.$anonfun$usingSpanWithCustomStatus$2(OpenTelemetryUtil.scala:37)    at scala.util.Using$.apply(Using.scala:296)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.usingSpanWithCustomStatus(OpenTelemetryUtil.scala:36)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.usingSpanWithCustomStatus(OpenTelemetryUtil.scala:53)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.withSpanWithCustomStatus(OpenTelemetryUtil.scala:15)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.withSpan(OpenTelemetryUtil.scala:18)    at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:109)    at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:73)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)    at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48)    at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.java:66)    at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:122)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:122)    at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:63)    at com.mendix.webui.actions.client.MicroflowRuntimeOperationExecutor.runMicroflow(MicroflowRuntimeOperationExecutor.scala:103)    at com.mendix.webui.actions.client.MicroflowRuntimeOperationExecutor.$anonfun$doApply$6(MicroflowRuntimeOperationExecutor.scala:76)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1(RegularClientAction.scala:30)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.$anonfun$apply$1(RegularClientAction.scala:72)    at com.mendix.webui.requesthandling.helpers.StateHandling.withState(StateHandling.scala:46)    at com.mendix.webui.requesthandling.helpers.StateHandling.withState$(StateHandling.scala:43)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.withState(RegularClientAction.scala:66)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:70)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:66)    at com.mendix.webui.actions.client.MicroflowRuntimeOperationExecutor.doApply(MicroflowRuntimeOperationExecutor.scala:77)    at com.mendix.webui.actions.client.MicroflowRuntimeOperationExecutor.apply(MicroflowRuntimeOperationExecutor.scala:47)    at com.mendix.webui.actions.client.RuntimeOperationAction.runOperation(RuntimeOperationAction.scala:81)    at com.mendix.webui.actions.client.RuntimeOperationAction.$anonfun$apply$3(RuntimeOperationAction.scala:57)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.$anonfun$withSpan$1(OpenTelemetryUtil.scala:18)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.$anonfun$usingSpanWithCustomStatus$2(OpenTelemetryUtil.scala:37)    at scala.util.Using$.apply(Using.scala:296)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.usingSpanWithCustomStatus(OpenTelemetryUtil.scala:36)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.usingSpanWithCustomStatus(OpenTelemetryUtil.scala:53)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.withSpanWithCustomStatus(OpenTelemetryUtil.scala:15)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.withSpan(OpenTelemetryUtil.scala:18)    at com.mendix.webui.actions.client.RuntimeOperationAction.apply(RuntimeOperationAction.scala:54)    at com.mendix.webui.actions.client.RuntimeOperationAction.apply(RuntimeOperationAction.scala:26)    at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1(RegularClientAction.scala:30)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$3(RegularClientAction.scala:121)    at scala.util.Try$.apply(Try.scala:217)    at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:121)    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:101)    at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:72)    at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$doProcessRequest$2(MxRuntimeConnector.scala:68)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$doProcessRequest$2$adapted(MxRuntimeConnector.scala:68)    at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)    at com.mendix.external.connector.MxRuntimeConnector.doProcessRequest(MxRuntimeConnector.scala:68)    at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:34)    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.$anonfun$withCurrentContextFrom$1(OpenTelemetryUtil.scala:25)    at scala.util.Using$.resource(Using.scala:296)    at com.mendix.modules.opentelemetry.OpenTelemetryUtil$.withCurrentContextFrom(OpenTelemetryUtil.scala:24)    at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:34)    at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:1078)    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.ee8.servlet.ServletHolder.handle(ServletHolder.java:640)    at org.eclipse.jetty.ee8.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1374)    at org.eclipse.jetty.ee8.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:175)    at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)    at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)    at org.eclipse.jetty.ee8.servlet.ServletHandler.doHandle(ServletHandler.java:454)    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)    at org.eclipse.jetty.ee8.nested.SessionHandler.doHandle(SessionHandler.java:519)    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)    at org.eclipse.jetty.ee8.nested.ContextHandler.doHandle(ContextHandler.java:885)    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:152)    at org.eclipse.jetty.ee8.servlet.ServletHandler.doScope(ServletHandler.java:423)    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)    at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:503)    at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)    at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:830)    at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)    at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1443)    at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1289)    at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:616)    at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:459)    at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2450)    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.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)    at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416)    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)    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.tryProduce(AdaptiveExecutionStrategy.java:293)    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)    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$Runner.doRunJob(QueuedThreadPool.java:1209)    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)    at java.base/java.lang.Thread.run(Thread.java:1583)   Anyone else encountered this issue?  
asked
4 answers
0

Please do check these threads as well 

 

PDF Generation give me a Time Out

 

Document generation - Timeout while waiting for document content

 

Document Generation Timeout

answered
0

Hi Tyron,

From the attached screenshots, it looks like you're running in an on-premises setup on Windows. If that is indeed the case, I would recommend to set the log level of the `DocumentGeneration` log node to trace. This should output the logs of the local service, and hopefully give a better indication why the service is not able to return any result. 

Hope this helps!

answered
0

Hi Tyron,

Have you got the solution for the above problem you mentioned because currently i am facing the same issue.

we too have hosted it on  on-premises.

 

answered
0

Here’s a simple and friendly way to share the recommended action order:


  • Try running the PDF generation microflow asynchronously instead of synchronously.
  • If the PDF includes external resources (CSS, images, fonts, external URLs), try generating a very simple PDF first. This helps check whether the timeout is caused by something the PDF is trying to load in production.
  • In production, the PDF generator container/service might not have network access (firewall, outbound rules, proxy). Use browser developer tools to see if any calls are being made, and check with the network team if anything is blocked. You can also try basic connectivity tests yourself.
  • In some cases, production has lower CPU or memory, which can slow down rendering and lead to timeouts (less common, but possible).
  • If external HTTPS resources are involved, TLS/certificate issues can cause the generator to hang while validating certificates. It’s worth checking this with the certificate/security team as well.



These steps usually help narrow down the real cause pretty quickly.


answered