YES! I’ve got it.
The solution is not setting a -Djava.io.tmpdir system property in knime.ini not even setting TEMP environment variable before the KNIME workflow invocation.
It is setting the -Djava.io.tmpdir as system property when a workflow is being invoked in batch mode. This is the command that ended up successfully:
#!/bin/bash
workflow_name=test_workflow_01
run_identifier=knime_wf_${workflow_mame}_run_$(date +%Y-%m-%d-%H-%M-%S)
current_dir="$PWD"
nohup /opt/ders/knime \
-nosplash \
-application org.knime.product.KNIME_BATCH_APPLICATION \
-workflowFile="/home/ders/sify_int/${workflow_name}.knwf" \
-workflow.variable=delay_in_sec,3,int \
-workflow.variable=correlation_id,correlation_id_not_set,String \
-workflow.variable=job_name,"unnamed_job",String \
-credential="sify_new_vavdev;*****;*****" \
-reset \
-preferences=/home/ders/phaeton.epf \
-consoleLog \
-destDir=$current_dir/out/${run_identifier}-out/ \
-vmargs -Djava.io.tmpdir=/opt/ders/temp -Dorg.knime.core.maxThreads=2 -Xmx4g > ${run_identifier}.log 2>&1 &