Error.ReportQueryLoadingError in report table containing molecule structures (triggered only in the KNIME Server)

Dear KNIMErs,

I’m experiencing problems when I run workflows associated with a BIRT report in the KNIME server (through the WebPortal). In general the workflows run well and complete successfully but the tables of the report where there are molecular structures are not generated. In contrast tables where no molecular structures are present are well generated.
I attach here a simple example workflow that works perfectly locally but fails to generate the report table when running on the KNIME server.

report_with_mol_struct.knar.knwf (20.1 KB)

Do you have any idea why this happens? Can you suggest me a solution or workaround?

Thanks in advance.

Here is the error as appears in the WebPortal:

Table (id = 53):
- There is an error in the report query loading, Can not retrieve data to generate the report. 
Error.ReportQueryLoadingError ( 1 time(s) )
detail : org.eclipse.birt.report.engine.api.EngineException: There is an error in the report query loading, Can not retrieve data to generate the report. 
	at org.eclipse.birt.report.engine.data.dte.DataPresentationEngine.doExecuteQuery(DataPresentationEngine.java:131)
	at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:286)
	at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1956)
	at org.eclipse.birt.report.engine.internal.document.v4.ReportItemExecutor.executeQuery(ReportItemExecutor.java:412)
	at org.eclipse.birt.report.engine.internal.document.v4.TableItemExecutor.doExecute(TableItemExecutor.java:71)
	at org.eclipse.birt.report.engine.internal.document.v4.ReportItemExecutor.execute(ReportItemExecutor.java:294)
	at org.eclipse.birt.report.engine.internal.document.v4.ContainerExecutor.prepareChildExecutor(ContainerExecutor.java:226)
	at org.eclipse.birt.report.engine.internal.document.v4.ContainerExecutor.hasNextChild(ContainerExecutor.java:110)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
	at org.eclipse.birt.report.engine.api.impl.RenderTask$ReportExecutorWrapper.hasNextChild(RenderTask.java:855)
	at org.eclipse.birt.report.engine.layout.html.HTMLPageLM$1.hasNextChild(HTMLPageLM.java:68)
	at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:62)
	at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
	at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
	at org.eclipse.birt.report.engine.api.impl.RenderTask$PageRangeRender.render(RenderTask.java:722)
	at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:321)
	at org.knime.reporting.executor.ReportExecutor.renderReport(ReportExecutor.java:363)
	at com.knime.enterprise.executor.JobPool.generateReport(JobPool.java:611)
	at com.knime.gateway.executor.GatewayJobPoolListener$1.generateReport(GatewayJobPoolListener.java:79)
	at com.knime.gateway.impl.webportal.service.DefaultWizardExecutionService.renderReport(DefaultWizardExecutionService.java:683)
	at com.knime.gateway.impl.webportal.jsonrpc.service.JsonRpcWizardExecutionServiceWrapper.renderReport(JsonRpcWizardExecutionServiceWrapper.java:125)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.googlecode.jsonrpc4j.JsonRpcBasicServer.invoke(JsonRpcBasicServer.java:478)
	at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleObject(JsonRpcBasicServer.java:349)
	at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleJsonNodeRequest(JsonRpcBasicServer.java:274)
	at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleRequest(JsonRpcBasicServer.java:242)
	at org.knime.gateway.impl.jsonrpc.JsonRpcRequestHandler.handle(JsonRpcRequestHandler.java:104)
	at com.knime.gateway.executor.jsonrpc.JsonRpcServerRequestHandler.handle(JsonRpcServerRequestHandler.java:77)
	at com.knime.enterprise.executor.genericmsg.GenericServerRequestManager.forwardRequest(GenericServerRequestManager.java:82)
	at com.knime.enterprise.executor.amqp.actions.GenericServerRequestTask.perform(GenericServerRequestTask.java:69)
	at com.knime.enterprise.executor.amqp.RabbitMQMessageConsumer$Consumer.processMessage(RabbitMQMessageConsumer.java:133)
	at com.knime.enterprise.executor.amqp.RabbitMQMessageConsumer$Consumer.handleDelivery(RabbitMQMessageConsumer.java:107)
	at com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:149)
	at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:104)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

Hi there,
I have just found a workaround. Using the Render to Image node before the Data to Report one resolve the problem. Nevertheless, it’s strange that without this node, the workflow run well locally but not on the KNIME server so I think it’s worth having a look to what happens there.
Cheers,
Gio