Skip to content

-derivatives flag crash #3580

@juansanchezpena

Description

@juansanchezpena

What happened?

I had a subject with two sessions each with their own anatomy (-subject-anatomical-reference sessionwise ) We have a thurd session with no anatomy and I need to use a specific existing anat:
sub-chrep000001$ ls * ses-19831: anat fmap func ses-22501: anat fmap func ses-22681: fmap func
I used the --derivative flag:
--derivatives anat=/output/sub-chrep000001/ses-22501/anat func=/output/sub-chrep000001/ses-22501/func

and While I did obtain what seems to be complete func resutls, there was a crash and a directory I did not anticipate in the ses level (ses-multi-6732)

What command did you use?

`
/usr/bin/docker service create \
    --constraint 'node.hostname==plisskenmri.nyspi.local' \
    --replicas 1 \
    --reserve-cpu 8 \
    --reserve-memory 32g \
    --mode replicated \
    --restart-condition none \
    --mount type=bind,source=$indir,destination=/input,readonly=true \
    --mount type=bind,source=$outdir,destination=/output  \
    --mount type=bind,source=/MRI_DATA/bin/freesurferlicense.txt,destination=/opt/freesurfer/license.txt,readonly=true  \
    nipreps/fmriprep:25.2.1  /input /output  participant \
    --participant-label chrep000001 \
    --subject-anatomical-reference sessionwise \
    --output-spaces MNI152NLin2009cAsym:res-native \
    --cifti-output \
    --project-goodvoxels \
    --ignore slicetiming`


/MRI_DATA/bin/subfmri-arg-25.2.1  -i /MRI_DATA/mritesting/patechrep/rawdata -o /MRI_DATA/mritesting/patechrep/derivatives/fmriprep25.2.1  -l /MRI_DATA/mritesting/patechrep/derivatives/fmriprep25.2.1/singleanat.log  -a "--derivatives
anat=/output/sub-chrep000001/ses-22501/anat
func=/output/sub-chrep000001/ses-22501/func
--participant-label chrep000001  --output-spaces MNI152NLin2009cAsym:res-native  --cifti-output  --project-goodvoxels --ignore slicetiming"

What version of fMRIPrep are you running?

25.2.1

How are you running fMRIPrep?

Docker

Is your data BIDS valid?

Yes

Are you reusing any previously computed results?

Anatomical derivatives

Please copy and paste any relevant log output.

[DSCLAB-6111a:ses-multi-6732/log/20251202-154729_6bbcd289-6037-4902-af40-8cd574febc63] juan% cat fmriprep.toml 
[environment]
cpu_count = 24
exec_env = "singularity"
free_mem = 123.3
overcommit_policy = "heuristic"
overcommit_limit = "50%"
nipype_version = "1.10.0"
templateflow_version = "25.0.4"
version = "25.2.1"

[execution]
bids_dir = "/input"
bids_database_dir = "/tmp/work/20251202-154729_6bbcd289-6037-4902-af40-8cd574febc63/bids_db"
bids_description_hash = "bfc1d37ead66565cf73e4d48a4a0bb5677d58892191953d109550aa063e1b034"
boilerplate_only = false
sloppy = false
debug = []
fmriprep_dir = "/output"
fs_license_file = "/opt/freesurfer/license.txt"
fs_subjects_dir = "/output/sourcedata/freesurfer"
layout = "BIDS Layout: .../input | Subjects: 1 | Sessions: 3 | Runs: 4"
log_dir = "/output/logs"
log_level = 25
low_mem = false
md_only_boilerplate = false
notrack = false
track_carbon = false
country_code = "CAN"
output_dir = "/output"
me_output_echos = false
aggr_ses_reports = 4
output_layout = "bids"
output_spaces = "MNI152NLin2009cAsym:res-native"
reports_only = false
run_uuid = "20251202-154729_6bbcd289-6037-4902-af40-8cd574febc63"
processing_groups = [ "sub-chrep000001_ses-19831,22501,22681",]
participant_label = [ "chrep000001",]
templateflow_home = "/home/fmriprep/.cache/templateflow"
work_dir = "/tmp/work"
write_graph = false

[workflow]
anat_only = false
bold2anat_dof = 6
bold2anat_init = "t2w"
cifti_output = "91k"
fmap_bspline = false
force_syn = false
hires = true
fs_no_resume = false
ignore = [ "slicetiming",]
force = []
level = "full"
run_msmsulc = true
medial_surface_nan = false
project_goodvoxels = true
regressors_all_comps = false
regressors_dvars_th = 1.5
regressors_fd_th = 0.5
run_reconall = true
skull_strip_fixed_seed = false
skull_strip_template = "OASIS30ANTs"
skull_strip_t1w = "force"
slice_time_ref = 0.5
spaces = "MNI152NLin2009cAsym:res-native MNI152NLin6Asym:res-2"
subject_anatomical_reference = "first-lex"
use_syn_sdc = false
me_t2s_fit_method = "curvefit"

[nipype]
crashfile_format = "txt"
get_linked_libs = false
nprocs = 24
omp_nthreads = 8
plugin = "MultiProc"
remove_unnecessary_outputs = true
resource_monitor = false
stop_on_first_crash = false

[seeds]
master = 45134
ants = 57333
numpy = 44849

[execution.derivatives]
anat = "/output/sub-chrep000001/ses-22501/anat"
func = "/output/sub-chrep000001/ses-22501/func"

[execution.dataset_links]
raw = "/input"
templateflow = "/home/fmriprep/.cache/templateflow"
anat = "/output/sub-chrep000001/ses-22501/anat"
func = "/output/sub-chrep000001/ses-22501/func"

[nipype.plugin_args]
maxtasksperchild = 1
raise_insufficient = false



Node inputs:

args = <undefined>
bad_vertex_roi_file = <undefined>
column = <undefined>
corrected_areas = <undefined>
data_roi_file = <undefined>
distance = 10.0
environ = {'OMP_NUM_THREADS': '8'}
exponent = <undefined>
in_file = <undefined>
legacy_cutoff = <undefined>
linear = <undefined>
nearest = True
num_threads = 8
out_file = <undefined>
surf_file = <undefined>

Traceback (most recent call last):
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 525, in run
    result = self._run_interface(execute=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 643, in _run_interface
    return self._run_command(execute)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 769, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node dilate_curv.

Cmdline:
	wb_command -metric-dilate  /tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_L/invert_curv/sub-chrep000001_ses-19831.L.curv.native.shape.gii  /output/sub-chrep000001/ses-22501/anat/sub-chrep000001_ses-22501_hemi-L_midthickness.surf.gii  10.000000  sub-chrep000001_ses-19831.L.curv.native.shape.func.gii  -nearest 
Stdout:

Stderr:

	While running:
	wb_command -metric-dilate /tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_L/invert_curv/sub-chrep000001_ses-19831.L.curv.native.shape.gii /output/sub-chrep000001/ses-22501/anat/sub-chrep000001_ses-22501_hemi-L_midthickness.surf.gii 10.000000 sub-chrep000001_ses-19831.L.curv.native.shape.func.gii -nearest

	ERROR: surface and metric number of vertices do not match

Traceback:
	Traceback (most recent call last):
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 457, in aggregate_outputs
	    setattr(outputs, key, val)
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/traits_extension.py", line 325, in validate
	    value = super().validate(objekt, name, value, return_pathlike=True)
	            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate
	    self.error(objekt, name, str(value))
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/traits/base_trait_handler.py", line 74, in error
	    raise TraitError(
	traits.trait_errors.TraitError: The 'out_file' trait of a MetricDilateOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_L/dilate_curv/sub-chrep000001_ses-19831.L.curv.native.shape.func.gii' <class 'str'> was specified.

	During handling of the above exception, another exception occurred:

	Traceback (most recent call last):
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 404, in run
	    outputs = self.aggregate_outputs(runtime)
	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 464, in aggregate_outputs
	    raise FileNotFoundError(msg)
	FileNotFoundError: No such file or directory '/tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_L/dilate_curv/sub-chrep000001_ses-19831.L.curv.native.shape.func.gii' for output 'out_file' of a MetricDilate interface


 cat crash-20251202-163609-root-dilate_curv.a1-2d31e540-fc97-4c49-bb4f-0b823e1930cf.txt
Node: fmriprep_25_2_wf.sub_chrep000001_ses_multi-6732_wf.hcp_morphometrics_wf.dilate_curv
Working directory: /tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_R/dilate_curv

Node inputs:

args = <undefined>
bad_vertex_roi_file = <undefined>
column = <undefined>
corrected_areas = <undefined>
data_roi_file = <undefined>
distance = 10.0
environ = {'OMP_NUM_THREADS': '8'}
exponent = <undefined>
in_file = <undefined>
legacy_cutoff = <undefined>
linear = <undefined>
nearest = True
num_threads = 8
out_file = <undefined>
surf_file = <undefined>

Traceback (most recent call last):
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 525, in run
    result = self._run_interface(execute=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 643, in _run_interface
    return self._run_command(execute)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 769, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node dilate_curv.

Cmdline:
	wb_command -metric-dilate  /tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_R/invert_curv/sub-chrep000001_ses-19831.R.curv.native.shape.gii  /output/sub-chrep000001/ses-22501/anat/sub-chrep000001_ses-22501_hemi-R_midthickness.surf.gii  10.000000  sub-chrep000001_ses-19831.R.curv.native.shape.func.gii  -nearest 
Stdout:

Stderr:

	While running:
	wb_command -metric-dilate /tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_R/invert_curv/sub-chrep000001_ses-19831.R.curv.native.shape.gii /output/sub-chrep000001/ses-22501/anat/sub-chrep000001_ses-22501_hemi-R_midthickness.surf.gii 10.000000 sub-chrep000001_ses-19831.R.curv.native.shape.func.gii -nearest

	ERROR: surface and metric number of vertices do not match

Traceback:
	Traceback (most recent call last):
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 457, in aggregate_outputs
	    setattr(outputs, key, val)
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/traits_extension.py", line 325, in validate
	    value = super().validate(objekt, name, value, return_pathlike=True)
	            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate
	    self.error(objekt, name, str(value))
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/traits/base_trait_handler.py", line 74, in error
	    raise TraitError(
	traits.trait_errors.TraitError: The 'out_file' trait of a MetricDilateOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_R/dilate_curv/sub-chrep000001_ses-19831.R.curv.native.shape.func.gii' <class 'str'> was specified.

	During handling of the above exception, another exception occurred:

	Traceback (most recent call last):
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 404, in run
	    outputs = self.aggregate_outputs(runtime)
	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 464, in aggregate_outputs
	    raise FileNotFoundError(msg)
	FileNotFoundError: No such file or directory '/tmp/work/fmriprep_25_2_wf/sub_chrep000001_ses_multi-6732_wf/hcp_morphometrics_wf/_hemi_R/dilate_curv/sub-chrep000001_ses-19831.R.curv.native.shape.func.gii' for output 'out_file' of a MetricDilate interface

Additional information / screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions