# Report module, executeReport error

**URL:** <https://forum.inductiveautomation.com/t/report-module-executereport-error/98723>\
**Category:** Ignition\
**Tags:** vision, reporting\
**Created:** [November 18, 2024, 12:01am UTC](https://forum.inductiveautomation.com/t/report-module-executereport-error/98723 "2024-11-18T00:01:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mori.luca](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mori.luca/32/13424_2.png) [@mori.luca](https://forum.inductiveautomation.com/u/mori.luca)\
**Post date:** [November 18, 2024, 12:01am UTC](https://forum.inductiveautomation.com/t/report-module-executereport-error/98723/1 "2024-11-18T00:01:31Z")

</div>

Hello,  
First time dealing with report module (working on version 8.1.43),  
if i generate a report via `system.report.executeReport(path=path, project=project, parameters={}, fileType="pdf")`  
two things happen:

1. If I create a Test Report, containing only shapes, like a rectangle and a start, it work and then i can create a file and download the report as pdf
2. If I insert any other component, like text for example, even if I write static text without binding to parameters, ( I deleted all parameters from the report), I receive this error. I want to point out that i tried multiple components, bindings, and all of those are working correctly while developing the report and viewing it in preview page. I only get this error when i call the executeReport.

```python
00:45:48.991 [AWT-EventQueue-0] ERROR com.inductiveautomation.ignition.client.util.gui.ErrorUtil -- <HTML>Error executing script for event:&nbsp;<code><b>actionPerformed</b></code><BR>on component:&nbsp;<code><b>GeneraReport</b></code>.
com.inductiveautomation.ignition.common.script.JythonExecException: Traceback (most recent call last):
  File "<event:actionPerformed>", line 9, in <module>
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:360)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:334)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:287)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.moduleInvokeSafe(GatewayInterface.java:930)
	at com.inductiveautomation.ignition.client.gateway_interface.ModuleRPCFactory$DynamicRPCHandler.invoke(ModuleRPCFactory.java:53)
	at jdk.proxy2/jdk.proxy2.$Proxy61.executeReport(Unknown Source)
	at com.inductiveautomation.reporting.scripting.ClientScriptingFunctions.executeReport(ClientScriptingFunctions.java:35)
	at com.inductiveautomation.reporting.common.scripting.ReportScriptingFunctionsPyWrapper.executeReport(ReportScriptingFunctionsPyWrapper.java:62)
	at jdk.internal.reflect.GeneratedMethodAccessor1779.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: java.lang.reflect.InvocationTargetException

	at org.python.core.Py.JavaError(Py.java:545)
	at org.python.core.Py.JavaError(Py.java:536)
	at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:192)
	at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction. __call__ (ScriptManager.java:553)
	at org.python.core.PyObject. __call__ (PyObject.java:400)
	at org.python.pycode._pyx1674.f$0(<event:actionPerformed>:11)
	at org.python.pycode._pyx1674.call_function(<event:actionPerformed>)
	at org.python.core.PyTableCode.call(PyTableCode.java:173)
	at org.python.core.PyCode.call(PyCode.java:18)
	at org.python.core.Py.runCode(Py.java:1703)
	at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:804)
	at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.runActions(ActionAdapter.java:207)
	at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.invoke(ActionAdapter.java:300)
	at com.inductiveautomation.factorypmi.application.binding.action.RelayInvocationHandler.invoke(RelayInvocationHandler.java:57)
	at jdk.proxy2/jdk.proxy2.$Proxy64.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at com.inductiveautomation.snap.swing.RibsEventQueue.dispatchEvent(RibsEventQueue.java:99)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.python.core.PyException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: java.lang.reflect.InvocationTargetException
	... 51 common frames omitted
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: java.lang.reflect.InvocationTargetException
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:360)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:334)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:287)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.moduleInvokeSafe(GatewayInterface.java:930)
	at com.inductiveautomation.ignition.client.gateway_interface.ModuleRPCFactory$DynamicRPCHandler.invoke(ModuleRPCFactory.java:53)
	at jdk.proxy2/jdk.proxy2.$Proxy61.executeReport(Unknown Source)
	at com.inductiveautomation.reporting.scripting.ClientScriptingFunctions.executeReport(ClientScriptingFunctions.java:35)
	at com.inductiveautomation.reporting.common.scripting.ReportScriptingFunctionsPyWrapper.executeReport(ReportScriptingFunctionsPyWrapper.java:62)
	at jdk.internal.reflect.GeneratedMethodAccessor1779.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:190)
	... 48 common frames omitted
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayResponse$GatewayThrowable: java.lang.reflect.InvocationTargetException
	at sun.font.FontManagerFactory$1.run(null)
	at java.security.AccessController.doPrivileged(null)
	at sun.font.FontManagerFactory.getInstance(null)
	at sun.font.SunFontManager.getInstance(null)
	at sun.font.FontDesignMetrics.getMetrics(null)
	at sun.java2d.SunGraphics2D.getFontMetrics(null)
	at com.inductiveautomation.rm.text.RMFontFile.getMaxAscent(RMFontFile.java:228)
	at com.inductiveautomation.rm.text.RMFontFile.getLineHeight(RMFontFile.java:259)
	at com.inductiveautomation.rm.text.RMFont.getLineHeight(RMFont.java:239)
	at com.inductiveautomation.rm.text.RMTextLayout.addLine(RMTextLayout.java:419)
	at com.inductiveautomation.rm.text.RMTextLayout.layoutText(RMTextLayout.java:166)
	at com.inductiveautomation.rm.text.RMTextLayout.layout(RMTextLayout.java:120)
	at com.inductiveautomation.rm.shape.RMTextShape.getTextLayout(RMTextShape.java:803)
	at com.inductiveautomation.rm.pdf.writer.RMTextShapePdfr.writeShape(RMTextShapePdfr.java:31)
	at com.inductiveautomation.rm.pdf.writer.RMTextShapePdfr.writeShape(RMTextShapePdfr.java:20)
	at com.inductiveautomation.rm.pdf.writer.RMShapePdfr.writeShapeAll(RMShapePdfr.java:56)
	at com.inductiveautomation.rm.pdf.writer.RMShapePdfr.writePDF(RMShapePdfr.java:26)
	at com.inductiveautomation.rm.pdf.writer.RMShapePdfr.writeShapeChildren(RMShapePdfr.java:98)
	at com.inductiveautomation.rm.pdf.writer.RMShapePdfr.writeShapeAll(RMShapePdfr.java:59)
	at com.inductiveautomation.rm.pdf.writer.RMShapePdfr.writePDF(RMShapePdfr.java:26)
	at com.inductiveautomation.rm.pdf.writer.RMShapePdfr.writePDF(RMShapePdfr.java:12)
	at com.inductiveautomation.rm.pdf.writer.RMPDFWriter.writeDocument(RMPDFWriter.java:347)
	at com.inductiveautomation.rm.pdf.writer.RMPDFWriter.getBytes(RMPDFWriter.java:87)
	at com.inductiveautomation.rm.shape.RMDocument.getBytesPDF(RMDocument.java:748)
	at com.inductiveautomation.reporting.gateway.actions.ReportActionUtils.getBytes(ReportActionUtils.java:33)
	at com.inductiveautomation.reporting.gateway.scripting.GatewayScriptingFunctions.lambda$executeReport$0(GatewayScriptingFunctions.java:134)
	at com.inductiveautomation.reporting.gateway.ReportingGatewayHook.executeReport(ReportingGatewayHook.java:328)
	at com.inductiveautomation.reporting.gateway.ReportingGatewayHook.executeReport(ReportingGatewayHook.java:247)
	at com.inductiveautomation.reporting.gateway.scripting.GatewayScriptingFunctions.executeReport(GatewayScriptingFunctions.java:133)
	at com.inductiveautomation.reporting.gateway.ReportingGatewayHook$RPC.executeReport(ReportingGatewayHook.java:646)
	at jdk.internal.reflect.GeneratedMethodAccessor290.invoke(null)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(null)
	at java.lang.reflect.Method.invoke(null)
	at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.ModuleInvoke.invoke(ModuleInvoke.java:167)
	at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:435)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:523)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
	at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)
	at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1410)
	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.servlet.ServletHandler.doHandle(ServletHandler.java:527)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
	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 com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.handle(RemoteHostNameLookupHandler.java:121)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
	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.lang.Thread.run(null)

```

Thank you

---

<div class="post-metadata">

**Author:** ![mori.luca](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mori.luca/32/13424_2.png) [@mori.luca](https://forum.inductiveautomation.com/u/mori.luca)\
**Post date:** [November 18, 2024, 12:08am UTC](https://forum.inductiveautomation.com/t/report-module-executereport-error/98723/2 "2024-11-18T00:08:45Z")

</div>

Sorry, running on debian.  
Fixed by

> [@Reporting module - class sun.font.CompositeFont cannot be cast to class sun.font.PhysicalFont](https://forum.inductiveautomation.com/t/reporting-module-class-sun-font-compositefont-cannot-be-cast-to-class-sun-font-physicalfont/30208/2):
>
> Update: The cause of this problem was moving a gateway from Windows to Linux. On Linux, some fonts are not available and the JDK needs the fontconfig package to find a replacement for those fonts. After installing the fontconfig package and restarting the gateway, the exception is gone. Of course the report looks terrible with the replacement fonts, but at least it can be generated.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 18, 2024, 12:10am UTC](https://forum.inductiveautomation.com/t/report-module-executereport-error/98723/3 "2024-11-18T00:10:37Z")

</div>

Install fontconfig from apt.

edit: ah, that's the solution linked the post too.
