Thanks @hilary.j.oliver .
I found out from logs that it is not liking one of the qsub directive in job prepared by cylc. It does not tell, which qsub directive it is complaining about. I verified it outside cylc framework by copying directives from job file into a test script.
#PBS script ${MY_DEFAULT_PATH}/task1.scr …does not like it
<bap001@ppp8->more test5.scr
#!/bin/bash -l
#
# ++++ THIS IS A CYLC JOB SCRIPT ++++
# Workflow: ex10_useplatforms/run16
# Task: 1/task1
# Job log directory: 1/task1/01
# Job runner: pbs
# Execution time limit: 300.0
# DIRECTIVES:
#PBS -N pabla
#PBS -o job.out
#PBS -e job.err
#PBS -l walltime=300
#PBS -l select=1:ncpus=1:mem=2gb
#PBS -M balbir.pabla@ec.gc.ca
#PBS -m abe
#PBS -q development
#PBS script task5.scr
hn=`hostname`
echo "hn=${hn}"
me=`whoami`
echo "me=${me}"
<bap001@ppp8->qsub test5.scr
qsub: directive error: script task5.scr
Now I removed , #PBS script task5.scr
Resubmitted again, and it worked
<bap001@ppp8->qsub test5.scr
69356930.ppp8pbs-01-ib
<bap001@ppp8->hostname
ppp8login-01-ib # ....submitting from login node, qsub submits to compute node named ppp8cn-115
<bap001@ppp8->more job.out
(INFO) Using package (fully qualified) pixi_0.63.2_all from domain /fs/ssm/eccc/cmd/cmds/apps/pixi/202602/00
hn=ppp8cn-115 # ..compute node name, here "cn" stands for compute node
me=bap001
actual cylc job file /home/bap001/cylc-run/ex10_useplatforms/run16/log/job/1/task1/NN/job
#!/bin/bash -l
#
# ++++ THIS IS A CYLC JOB SCRIPT ++++
# Workflow: ex10_useplatforms/run16
# Task: 1/task1
# Job log directory: 1/task1/01
# Job runner: pbs
# Execution time limit: 300.0
# DIRECTIVES:
#PBS -N pabla
#PBS -o cylc-run/ex10_useplatforms/run16/log/job/1/task1/01/job.out
#PBS -e cylc-run/ex10_useplatforms/run16/log/job/1/task1/01/job.err
#PBS -l walltime=300
#PBS -l select=1:ncpus=1:mem=2gb
#PBS -M balbir.pabla@ec.gc.ca
#PBS -m abe
#PBS -q development
#PBS script ${MY_DEFAULT_PATH}/task1.scr
if [[ $1 == 'noreinvoke' ]]; then
shift
else
exec bash -l "$0" noreinvoke "$@"
fi
...
bap001@ppp8->more job.status
CYLC_JOB_RUNNER_NAME=pbs
<bap001@ppp8->more job-activity.log
[jobs-submit cmd] ssh -oBatchMode=yes -oConnectTimeout=10 ppp8 env CYLC_VERSION=8.6.3 bash --login -c ''"'"'ex
ec "$0" "$@"'"'"'' cylc jobs-submit --debug --remote-mode --path=/bin --path=/usr/bin --path=/usr/local/bin --
path=/sbin --path=/usr/sbin --path=/usr/local/sbin -- '$HOME/cylc-run/ex10_useplatforms/run16/log/job' 1/task1
/01
[jobs-submit ret_code] 1
[jobs-submit out] 2026-06-23T01:16:03Z|1/task1/01|1|None
2026-06-23T01:16:03Z [STDERR] qsub: directive error: script ${MY_DEFAULT_PATH}/task1.scr
My 2 cents: Instead of specifying the task name on PBS directive, you guys should append the contents of task1 script to job file.