5.8 - SLF4J errors in batch mode - How to properly fix?

Hi everyone.

At our company we use knime running in automated workflows using batch/cli mode. We have recently upgrade from 5.3 to 5.8 and we are running into some issues .

The main issue seems to be related to the SLF4J logging library which seems to have changed recently. Initially we got lots of errors like this

Following that link provided

We deduced that we needed to add in a ‘no op provider’ and link to it in the knime configuration. Which after some googling we managed to do like this:

This avoids the logging error but results in others. Now we get a new recurring error when submitting the automated jobs

!ENTRY org.eclipse.osgi 4 0 2026-04-22 14:59:52.190
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: Could not initialize class org.thymeleaf.templateresolver.ClassLoaderTemplateResolver
at org.knime.gateway.impl.webui.preview.GenerateSVGWorkflowSaveHook.renderPreviewSVG(GenerateSVGWorkflowSaveHook.java:111)
at org.knime.gateway.impl.webui.preview.GenerateSVGWorkflowSaveHook.onSave(GenerateSVGWorkflowSaveHook.java:173)
at org.knime.core.node.workflow.WorkflowSaveHook.lambda$2(WorkflowSaveHook.java:154)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at org.knime.core.node.workflow.WorkflowSaveHook.runHooks(WorkflowSaveHook.java:152)
at org.knime.core.node.workflow.WorkflowManager.save(WorkflowManager.java:9749)
at org.knime.core.node.workflow.WorkflowManager.save(WorkflowManager.java:9697)
at org.knime.core.node.workflow.BatchExecutor.saveWorkflow(BatchExecutor.java:860)
at org.knime.core.node.workflow.BatchExecutor.runOne(BatchExecutor.java:959)
at org.knime.core.node.workflow.BatchExecutor.runAll(BatchExecutor.java:899)
at org.knime.core.node.workflow.BatchExecutor.mainRun(BatchExecutor.java:673)
at org.knime.product.headless.KNIMEBatchApplication.runBatchExecutor(KNIMEBatchApplication.java:138)
at org.knime.product.headless.KNIMEBatchApplication.start(KNIMEBatchApplication.java:91)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
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 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
at org.eclipse.equinox.launcher.Main.run(Main.java:1459)

The workflow still completes and produces the output, however this still causes issues for us as this error writes to stderr and that is detected as an error by our automation. There should be a way to avoid this as it wasn’t an issue in 5.3

According to co-pilot, it may be because of the way we added the nop.jar file, i.e., that adding it as

-Xbootclasspath

might be incorrect due to the way java/eclipse/knime handle dependencies. But I (not being a java developer) am unsure the correct way to go about this and I cannot find it documented anywhere.

Can someone please clarify what causes this error, and how to fix it? All help will be appreciated.
If more information is required let me know